OVH Cloud OVH Cloud

Manipulation des données sous VB6

8 réponses
Avatar
Belkacem
Bonjour
J'ai confectionnée une base de données que je voudrai manipuler ces données
à l'aide d'un programme sous VB6.

Je voudrai afficher uniquement les données de la table obeissant à certaines
conditions.

Malheureusement je bute sur un problème que je n'arrive pas a régler.. Après
exécution, des erreurs apparaissent m'empêchant d'afficher la BD.

Ci joint le code qui pose problème

Private Sub Sélection_Click()
Dim Profondeur, Db, Hmt, Débit As Integer
Profondeur = Val(Text1.Text)
'Db = Val(Text2.Text)
BDPompes.RecordSource = "SELECT * FROM Electropompe WHERE
Hmt<=Profondeur and Hmt>=Profondeur and Débit<=Db and Débit>=Db;"
'BDPompes.RecordSource = "SELECT * FROM Electropompe WHERE Hmt<=100;"

'* sélectionne tous les champs de la table "Electropompe"
BDPompes.Refresh
End Sub

Où Hmt ,Débit des enregistrement dans une tables
et Profondeur,Db sont des variables de références

Merci à tous
--
B.Belkacem

8 réponses

Avatar
Adam Pietrasiewicz
W niedzielê 23-stycznia-2005 o godzinie 15:51:03 Belkacem napisa³/a

Dim Profondeur, Db, Hmt, Débit As Integer



On est bien d'accord que Profondeur, Db et Hmt sont de type
Variant... Oui?

BDPompes.RecordSource = "SELECT * FROM Electropompe WHERE
Hmt<=Profondeur and Hmt>=Profondeur and Débit<U and Débit>U;"



La requette ci dessus n'a pas de sens - sommes nous d'accord?

'BDPompes.RecordSource = "SELECT * FROM Electropompe WHERE Hmt<0;"
'* sélectionne tous les champs de la table "Electropompe"



Oui, et cela veut dire peut etre que tous les valeurs du champs Hmt
sont inferieurs a 100...

Il faudrait que tu precises un peu mieux le fond du probleme.


--
Pozdrawiam
Adam Pietrasiewicz
Avatar
Jean-Marc
"Belkacem" a écrit dans le message de
news:
Bonjour
J'ai confectionnée une base de données que je voudrai manipuler ces


données
à l'aide d'un programme sous VB6.

Je voudrai afficher uniquement les données de la table obeissant à


certaines
conditions.

Malheureusement je bute sur un problème que je n'arrive pas a régler..


Après
exécution, des erreurs apparaissent m'empêchant d'afficher la BD.

Ci joint le code qui pose problème

Private Sub Sélection_Click()
Dim Profondeur, Db, Hmt, Débit As Integer



Hello,

Je suppose vu ton code que tu souhaites que Profondeur, Db et Hmt soient des
entiers.

Pour ce faire, il faut écrire:
Dim Profondeur as Integer
Dim Db as Integer
Dim Hmt as Integer

ou bien:

Dim Profondeur as Integer, Db as Integer, Hmt as Integer

Voir à ce sujet l'aide VB à propos de l'instruction Dim


Profondeur = Val(Text1.Text)
'Db = Val(Text2.Text)
BDPompes.RecordSource = "SELECT * FROM Electropompe WHERE
Hmt<=Profondeur and Hmt>=Profondeur and Débit<Û and Débit>Û;"



Ton affectation à Recordsource doit être du SQL valide. Ce que tu écris n'es
pas du SQL valide. Il faut écrire quelque chose comme:

Dim sqlQuery as String

sqlQuery = "SELECT * FROM Electropompe WHERE Hmt <=" & Profondeur & " AND
hmt>=" & Profondeur & " AND Débit >=" & Db

BDPompes.RecordSource = sqlQuery


Note: c'est maintenant du SQL valide, mais qui n'a pas beaucoup de sens: tu
demandes les enregistrements pour lesquels le champ Hmt est à la fois plus
petit ou égal à la valeur de Profondeur ET en même temps plus grand ou égal
à la valeur de profondeur. Ce qui fait que tu ne gardes les enregistrements
pour lesquels le champ Hmt est EXACTEMENT égal à Profondeur ET dont la
valeur du champ Débit est plus grande ou égale à la valeur de la variable
Db.

--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
Avatar
Michel69
Hmt<=Profondeur and Hmt>=Profondeur

ça veut dire Hmt=Profondeur non ???





"Belkacem" a écrit dans le message de
news:
Bonjour
J'ai confectionnée une base de données que je voudrai manipuler ces
données
à l'aide d'un programme sous VB6.

Je voudrai afficher uniquement les données de la table obeissant à
certaines
conditions.

Malheureusement je bute sur un problème que je n'arrive pas a régler..
Après
exécution, des erreurs apparaissent m'empêchant d'afficher la BD.

Ci joint le code qui pose problème

Private Sub Sélection_Click()
Dim Profondeur, Db, Hmt, Débit As Integer
Profondeur = Val(Text1.Text)
'Db = Val(Text2.Text)
BDPompes.RecordSource = "SELECT * FROM Electropompe WHERE
Hmt<=Profondeur and Hmt>=Profondeur and Débit<Û and Débit>Û;"
'BDPompes.RecordSource = "SELECT * FROM Electropompe WHERE Hmt<0;"

'* sélectionne tous les champs de la table "Electropompe"
BDPompes.Refresh
End Sub

Où Hmt ,Débit des enregistrement dans une tables
et Profondeur,Db sont des variables de références

Merci à tous
--
B.Belkacem


Avatar
Belkacem
je voudrai m'excuser auprès des membres car en écrivant le code, j'ai fais
une erreur de formulation. Soyez indulgents c'est la première fois que je
participe.

Nouveau code corrigé:

Private Sub Sélection_Click()
Dim Profondeur, Db, Hmt, Débit As Integer
Profondeur = Val(Text1.Text)
Db = Val(Text2.Text)
BDPompes.RecordSource = "SELECT * FROM Electropompe WHERE Hmt<=Profondeur
and Hmt>=(1.2*Profondeur) and Db<=Débit and Db>=(1.2*Débit);"
'BDpompe est une base de données sous access
'Electropompe est une table de la base de données BDPompes
BDPompes.Refresh
End Sub

Encore un grand merci pour votre aide


"Belkacem" a écrit :

Bonjour
J'ai confectionnée une base de données que je voudrai manipuler ces données
à l'aide d'un programme sous VB6.

Je voudrai afficher uniquement les données de la table obeissant à certaines
conditions.

Malheureusement je bute sur un problème que je n'arrive pas a régler.. Après
exécution, des erreurs apparaissent m'empêchant d'afficher la BD.

Ci joint le code qui pose problème

Private Sub Sélection_Click()
Dim Profondeur, Db, Hmt, Débit As Integer
Profondeur = Val(Text1.Text)
'Db = Val(Text2.Text)
BDPompes.RecordSource = "SELECT * FROM Electropompe WHERE
Hmt<=Profondeur and Hmt>=Profondeur and Débit<Û and Débit>Û;"
'BDPompes.RecordSource = "SELECT * FROM Electropompe WHERE Hmt<0;"

'* sélectionne tous les champs de la table "Electropompe"
BDPompes.Refresh
End Sub

Où Hmt ,Débit des enregistrement dans une tables
et Profondeur,Db sont des variables de références

Merci à tous
--
B.Belkacem


Avatar
Patrick Philippot
Bonjour,

Malheureusement je bute sur un problème que je n'arrive pas a
régler.. Après exécution, des erreurs apparaissent m'empêchant



OK. Puisque vous nous dîtes que vous n'avez pas l'habitude de poster sur
les newsgroups, quelques petits conseils... :-) Nous n'avons pas la
possibilité d'exécuter votre code puisque nous n'avons pas les BD en
question. Nous n'avons non plus aucune vision sur la totalité de votre
code. Donc, comment pouvons nous faire un diagnostic si vous ne nous
donnez pas au minimum l'intitulé ou le numéro des erreurs qui se
produisent et sur quelles lignes de code elles surviennent?

Si vous allez chez le garagiste et que vous lui dîtes simplement "Ma
voiture ne fonctionne pas", il ne va pas faire grand-chose pour vous.
Vous lui précisez en, général, "Je ne peux pas démarrer", "Ça ne freine
plus", "Je n'arrive plus à dépasser le 300 kmh", etc. Nous avons besoin
des mêmes infos :-) .

Merci d'avance.

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Avatar
jean-marc
"Belkacem" wrote in message
news:
je voudrai m'excuser auprès des membres car en écrivant le code, j'ai fais
une erreur de formulation. Soyez indulgents c'est la première fois que je
participe.



Hello,

Si tu relis le fil de discussion, tu verras que j'ai déjà répondu à tes
questions dans mon
post d'hier soir (Jean-marc, 20H48).

--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
Avatar
Driss HANIB
salut belkacem

sans étudier à fond il me semble qu'il y a un problème dans tes conditions
sur Hmt : comment peut il être à la fois :

Hmt<=Profondeur and Hmt>=(1.2*Profondeur)

c'est plus petit qu'un nombre et plus grand que ce même nombre X par 1,2 ?
Aucun nombre ne peut le faire si ce n'est 0

Donc pour moi ta requête rendra toujours un recordset vide..

Driss
"Belkacem" a écrit dans le message de
news:
je voudrai m'excuser auprès des membres car en écrivant le code, j'ai fais
une erreur de formulation. Soyez indulgents c'est la première fois que je
participe.

Nouveau code corrigé:

Private Sub Sélection_Click()
Dim Profondeur, Db, Hmt, Débit As Integer
Profondeur = Val(Text1.Text)
Db = Val(Text2.Text)
BDPompes.RecordSource = "SELECT * FROM Electropompe WHERE Hmt<=Profondeur
and Hmt>=(1.2*Profondeur) and Db<=Débit and Db>=(1.2*Débit);"
'BDpompe est une base de données sous access
'Electropompe est une table de la base de données BDPompes
BDPompes.Refresh
End Sub

Encore un grand merci pour votre aide


"Belkacem" a écrit :

> Bonjour
> J'ai confectionnée une base de données que je voudrai manipuler ces


données
> à l'aide d'un programme sous VB6.
>
> Je voudrai afficher uniquement les données de la table obeissant à


certaines
> conditions.
>
> Malheureusement je bute sur un problème que je n'arrive pas a régler..


Après
> exécution, des erreurs apparaissent m'empêchant d'afficher la BD.
>
> Ci joint le code qui pose problème
>
> Private Sub Sélection_Click()
> Dim Profondeur, Db, Hmt, Débit As Integer
> Profondeur = Val(Text1.Text)
> 'Db = Val(Text2.Text)
> BDPompes.RecordSource = "SELECT * FROM Electropompe WHERE
> Hmt<=Profondeur and Hmt>=Profondeur and Débit<Û and Débit>Û;"
> 'BDPompes.RecordSource = "SELECT * FROM Electropompe WHERE Hmt<0;"
>
> '* sélectionne tous les champs de la table "Electropompe"
> BDPompes.Refresh
> End Sub
>
> Où Hmt ,Débit des enregistrement dans une tables
> et Profondeur,Db sont des variables de références
>
> Merci à tous
> --
> B.Belkacem


Avatar
Philippe
Bon je vais te répondre à ta question de syntaxe. Tu virifira ta logique
après.

Voici la ligne sql à insérer dans ton prog


Premierement je comprend pas pourquoi que débit et htm sont déclarés dans
ton vb c'est surement des champs de ta bd.

BDPompes.RecordSource = "SELECT * FROM Electropompe WHERE Hmt<=" &
Profondeur & " and Hmt>= " & (1.2*Profondeur) & " and " & Db & "<=Débit and "
& Db & ">= (1.2*Débit);"



"Driss HANIB" wrote:

salut belkacem

sans étudier à fond il me semble qu'il y a un problème dans tes conditions
sur Hmt : comment peut il être à la fois :

Hmt<=Profondeur and Hmt>=(1.2*Profondeur)

c'est plus petit qu'un nombre et plus grand que ce même nombre X par 1,2 ?
Aucun nombre ne peut le faire si ce n'est 0

Donc pour moi ta requête rendra toujours un recordset vide..

Driss
"Belkacem" a écrit dans le message de
news:
> je voudrai m'excuser auprès des membres car en écrivant le code, j'ai fais
> une erreur de formulation. Soyez indulgents c'est la première fois que je
> participe.
>
> Nouveau code corrigé:
>
> Private Sub Sélection_Click()
> Dim Profondeur, Db, Hmt, Débit As Integer
> Profondeur = Val(Text1.Text)
> Db = Val(Text2.Text)
> BDPompes.RecordSource = "SELECT * FROM Electropompe WHERE Hmt<=Profondeur
> and Hmt>=(1.2*Profondeur) and Db<=Débit and Db>=(1.2*Débit);"
> 'BDpompe est une base de données sous access
> 'Electropompe est une table de la base de données BDPompes
> BDPompes.Refresh
> End Sub
>
> Encore un grand merci pour votre aide
>
>
> "Belkacem" a écrit :
>
> > Bonjour
> > J'ai confectionnée une base de données que je voudrai manipuler ces
données
> > à l'aide d'un programme sous VB6.
> >
> > Je voudrai afficher uniquement les données de la table obeissant à
certaines
> > conditions.
> >
> > Malheureusement je bute sur un problème que je n'arrive pas a régler..
Après
> > exécution, des erreurs apparaissent m'empêchant d'afficher la BD.
> >
> > Ci joint le code qui pose problème
> >
> > Private Sub Sélection_Click()
> > Dim Profondeur, Db, Hmt, Débit As Integer
> > Profondeur = Val(Text1.Text)
> > 'Db = Val(Text2.Text)
> > BDPompes.RecordSource = "SELECT * FROM Electropompe WHERE
> > Hmt<=Profondeur and Hmt>=Profondeur and Débit<Û and Débit>Û;"
> > 'BDPompes.RecordSource = "SELECT * FROM Electropompe WHERE Hmt<0;"
> >
> > '* sélectionne tous les champs de la table "Electropompe"
> > BDPompes.Refresh
> > End Sub
> >
> > Où Hmt ,Débit des enregistrement dans une tables
> > et Profondeur,Db sont des variables de références
> >
> > Merci à tous
> > --
> > B.Belkacem