OVH Cloud OVH Cloud

SQL VB-Message d'erreur

5 réponses
Avatar
ingrid bauer
Hello,

j'essaye de g=E9n=E9rer une requ=EAte dans le SQL BUILDER de=20
VB6 et =E7a marche pas j'ai un message d'erreur qui dit=20
que "Le param=E8tre [Forms]![frmDataEnv]![Text1] n'a pas de=20
valeur par d=E9faut"....En fait il s'agit d'une variable=20
dans mon form VB6...Je tape la valeur du Text1 et et =E7a=20
marche pas. Ci dessous le code SQL:

SELECT B=E9b=E9.*, B=E9b=E9.SBU
FROM B=E9b=E9
WHERE (((B=E9b=E9.SBU)=3D[Forms]![[frmDataEnv]![Text1]));

Merci d'avance
Bisous
Ingrid

5 réponses

Avatar
Denis
Bonjour Ingrid,

Bon je ne connais vraiment le SQL BUILDER de VB6. Par contre à première vue
il suffirait peut-être de retirer simplement Bébé.SBU dans la partie SELECT
de ta requête comme ceci :

SELECT Bébé.* FROM Bébé
WHERE (((Bébé.SBU)=[Forms]![[frmDataEnv]![Text1]));

Ensuite, reste à savoir de quel type est ton champ SBU. Par exemple s'il
est numérique ça va comme tu as fait ta requête, par contre s'il est en
texte par exemple , tu dois mettre ta variable entre apostrophe comme
Bébé.SBU = 'TaVariable'. Encore là, selon les bases de données le = ne
fonctionne pas toujours pour les comparaisons de chaîne de caractères. Dans
ce cas il est parfois mieux d'utiliser LIKE plutôt que = pour effectuer la
comparaison.

Comme je disais, je ne connais pas vraiment SQL BUILDER, par contre pour
écrire ta requête directement dans ton code elle devrait ressembler à ceci
si ton champ SBU est numérique :

"SELECT * FROM Bébé WHERE SBU = " & Text1.Text sans apostrophe ici

et à ceci si c'est une chaîne de caractère :

"SELECT * FROM Bébé WHERE SBU LIKE '" & Text1.Text & "'" avec
apostrophe ici

Espérant avoir pu t'aider un peu

@ +

Denis P

"ingrid bauer" a écrit dans le message de
news:1b2301c372de$b61288c0$
Hello,

j'essaye de générer une requête dans le SQL BUILDER de
VB6 et ça marche pas j'ai un message d'erreur qui dit
que "Le paramètre [Forms]![frmDataEnv]![Text1] n'a pas de
valeur par défaut"....En fait il s'agit d'une variable
dans mon form VB6...Je tape la valeur du Text1 et et ça
marche pas. Ci dessous le code SQL:

SELECT Bébé.*, Bébé.SBU
FROM Bébé
WHERE (((Bébé.SBU)=[Forms]![[frmDataEnv]![Text1]));

Merci d'avance
Bisous
Ingrid
Avatar
Ingrid Bauer
Merci Denis mais ça ne marche pas...Ton code est bon mais
pour une requete Access ça passe pas dans VB.

J'essaye maintenant de créér un command SQL via un command
button est ce que et ci dessous le code. Est ce que c'est
comme ça qu'on crééé automatiquement une requete SQL. Qd
je clique je vais dans mon data environment pour voir si
le command SQL a été créé je trouve rien


Dim x As New DataEnvironment1
x.Connection2.Open
x.Connection2.Execute "SELECT Bébé.* FROM bébé WHERE
('Nom'=' & Form1.Text1.Text & ') "
MsgBox "finish"


Thanks
Bisous
Ingrid
-----Message d'origine-----
Bonjour Ingrid,

Bon je ne connais vraiment le SQL BUILDER de VB6. Par


contre à première vue
il suffirait peut-être de retirer simplement Bébé.SBU


dans la partie SELECT
de ta requête comme ceci :

SELECT Bébé.* FROM Bébé
WHERE (((Bébé.SBU)=[Forms]![[frmDataEnv]![Text1]));

Ensuite, reste à savoir de quel type est ton champ SBU.


Par exemple s'il
est numérique ça va comme tu as fait ta requête, par


contre s'il est en
texte par exemple , tu dois mettre ta variable entre


apostrophe comme
Bébé.SBU = 'TaVariable'. Encore là, selon les bases de


données le = ne
fonctionne pas toujours pour les comparaisons de chaîne


de caractères. Dans
ce cas il est parfois mieux d'utiliser LIKE plutôt que =


pour effectuer la
comparaison.

Comme je disais, je ne connais pas vraiment SQL BUILDER,


par contre pour
écrire ta requête directement dans ton code elle devrait


ressembler à ceci
si ton champ SBU est numérique :

"SELECT * FROM Bébé WHERE SBU = " & Text1.Text


sans apostrophe ici

et à ceci si c'est une chaîne de caractère :

"SELECT * FROM Bébé WHERE SBU LIKE '" & Text1.Text


& "'" avec
apostrophe ici

Espérant avoir pu t'aider un peu

@ +

Denis P

"ingrid bauer" a écrit dans le


message de
news:1b2301c372de$b61288c0$
Hello,

j'essaye de générer une requête dans le SQL BUILDER de
VB6 et ça marche pas j'ai un message d'erreur qui dit
que "Le paramètre [Forms]![frmDataEnv]![Text1] n'a pas de
valeur par défaut"....En fait il s'agit d'une variable
dans mon form VB6...Je tape la valeur du Text1 et et ça
marche pas. Ci dessous le code SQL:

SELECT Bébé.*, Bébé.SBU
FROM Bébé
WHERE (((Bébé.SBU)=[Forms]![[frmDataEnv]![Text1]));

Merci d'avance
Bisous
Ingrid


.



Avatar
Denis
ReBonjour Ingrid,

Mais oui une requête Access passe dans VB, il faut juste la bonne méthode.

Maintenant je comprend, tu fonctionnes avec un DataEnvironnement. Désolé
mais mes notions avec le DataEnvironnement sont un peu loin dans ma mémoire.
Il y a déjà un bout de temps que j'ai abandonné le DataEnvironnement,
vraiment pas assez convial et on est beaucoup trop limité dans nos actions.
Le code que je te donnais par contre est parfait quand on fonctionne avec
ADO. D'accord ADO est plus complexe que le DataEnvironnement, mais Grand
Dieu tellement plus convial. C'est justement dû à la difficulté de passer
des variable dans une requête, que j'ai opté pour ADO.

Par contre évidemment il est possible de modifier ta requête qui est dans
une commande de ton DataEnvironnnement et de parvenir à lui passer tes
variables. Si tu veux continuer d'utiliser le DataEnvironnement et
fonctionner un peu comme avec ADO c'est toujours possible. Pour se faire
lorsque ton DataEnvironnment est créé et que tu as au moins une commande de
créer aussi (remarque tu peux te créer une commande bidon qui te servira à
la modifier par la suite dans ton code) Exemple tu te crées une commande
dont la requête SQL est simplement SELECT * FROM MaTable. Par la suite
dans ton code, tu viens changer la source de ta commande de cette façon :

TonDataEnvironnement.TaCommande.Source = "SELECT * FROM Bébé Where SBU LIKE
'" & Text1.Text & "'"
TonDataEnvironnement.TaCommande.Open

Ensuite, tu peux faire tout ce que tu veux avec comme si c'était un
Recordset d'ADO ou presque. Par exemple voir si l'enregistrement correspond
à un critère particulier comme :

If TonDataEnvironnement.TaCommande!SBU = "Ingrid" Then
MsgBox "Bonjour Ingrid"
End if

Si tu connais un peu le principe du mouvement dans le résultat d'une
requête, tu peux donc faire toutes les recherches que tu veux pour vérifier
chaque enregistrement à l'aide d'une boucle.

En fonctionnant de cette façon, tu te trouves à utiliser ton
DataEnvironnement uniquement afin d'avoir ta connexion à ta base de données.
De plus puisque maintenant ta commande est redéfinie à chaque fois dans le
code lorsque tu l'appelles, tu peux avoir toute la flexibilité que tu
désires et ainsi inclure des variables dans tes requêtes SQL. Ce qui est
impossible à faire directement quand tu crées ta commande dans le
DataEnvironnement.

J'espère que tu as compris le principe et que mes explications ont été assez
claires pour t'aider.

@ +

Denis P

"Ingrid Bauer" a écrit dans le message de
news:1cab01c372f5$47868ca0$
Merci Denis mais ça ne marche pas...Ton code est bon mais
pour une requete Access ça passe pas dans VB.

J'essaye maintenant de créér un command SQL via un command
button est ce que et ci dessous le code. Est ce que c'est
comme ça qu'on crééé automatiquement une requete SQL. Qd
je clique je vais dans mon data environment pour voir si
le command SQL a été créé je trouve rien


Dim x As New DataEnvironment1
x.Connection2.Open
x.Connection2.Execute "SELECT Bébé.* FROM bébé WHERE
('Nom'=' & Form1.Text1.Text & ') "
MsgBox "finish"


Thanks
Bisous
Ingrid
-----Message d'origine-----
Bonjour Ingrid,

Bon je ne connais vraiment le SQL BUILDER de VB6. Par


contre à première vue
il suffirait peut-être de retirer simplement Bébé.SBU


dans la partie SELECT
de ta requête comme ceci :

SELECT Bébé.* FROM Bébé
WHERE (((Bébé.SBU)=[Forms]![[frmDataEnv]![Text1]));

Ensuite, reste à savoir de quel type est ton champ SBU.


Par exemple s'il
est numérique ça va comme tu as fait ta requête, par


contre s'il est en
texte par exemple , tu dois mettre ta variable entre


apostrophe comme
Bébé.SBU = 'TaVariable'. Encore là, selon les bases de


données le = ne
fonctionne pas toujours pour les comparaisons de chaîne


de caractères. Dans
ce cas il est parfois mieux d'utiliser LIKE plutôt que pour effectuer la
comparaison.

Comme je disais, je ne connais pas vraiment SQL BUILDER,


par contre pour
écrire ta requête directement dans ton code elle devrait


ressembler à ceci
si ton champ SBU est numérique :

"SELECT * FROM Bébé WHERE SBU = " & Text1.Text


sans apostrophe ici

et à ceci si c'est une chaîne de caractère :

"SELECT * FROM Bébé WHERE SBU LIKE '" & Text1.Text


& "'" avec
apostrophe ici

Espérant avoir pu t'aider un peu

@ +

Denis P

"ingrid bauer" a écrit dans le


message de
news:1b2301c372de$b61288c0$
Hello,

j'essaye de générer une requête dans le SQL BUILDER de
VB6 et ça marche pas j'ai un message d'erreur qui dit
que "Le paramètre [Forms]![frmDataEnv]![Text1] n'a pas de
valeur par défaut"....En fait il s'agit d'une variable
dans mon form VB6...Je tape la valeur du Text1 et et ça
marche pas. Ci dessous le code SQL:

SELECT Bébé.*, Bébé.SBU
FROM Bébé
WHERE (((Bébé.SBU)=[Forms]![[frmDataEnv]![Text1]));

Merci d'avance
Bisous
Ingrid


.



Avatar
Ingrid bauer
Denis,

Merci bcp pour ta reponse...

J'ai essayé ta solution (DataEnvironnement.Command2.Source
=...) mais j'ai un message d'erreur:
Compile Error:
"Argument not optional"

je suis desoléé de t'embeter avec ça.....

Merci
Bisous
Ingrid la neerlandaise


-----Message d'origine-----
ReBonjour Ingrid,

Mais oui une requête Access passe dans VB, il faut juste


la bonne méthode.

Maintenant je comprend, tu fonctionnes avec un


DataEnvironnement. Désolé
mais mes notions avec le DataEnvironnement sont un peu


loin dans ma mémoire.
Il y a déjà un bout de temps que j'ai abandonné le


DataEnvironnement,
vraiment pas assez convial et on est beaucoup trop limité


dans nos actions.
Le code que je te donnais par contre est parfait quand on


fonctionne avec
ADO. D'accord ADO est plus complexe que le


DataEnvironnement, mais Grand
Dieu tellement plus convial. C'est justement dû à la


difficulté de passer
des variable dans une requête, que j'ai opté pour ADO.

Par contre évidemment il est possible de modifier ta


requête qui est dans
une commande de ton DataEnvironnnement et de parvenir à


lui passer tes
variables. Si tu veux continuer d'utiliser le


DataEnvironnement et
fonctionner un peu comme avec ADO c'est toujours


possible. Pour se faire
lorsque ton DataEnvironnment est créé et que tu as au


moins une commande de
créer aussi (remarque tu peux te créer une commande bidon


qui te servira à
la modifier par la suite dans ton code) Exemple tu te


crées une commande
dont la requête SQL est simplement SELECT * FROM


MaTable. Par la suite
dans ton code, tu viens changer la source de ta commande


de cette façon :

TonDataEnvironnement.TaCommande.Source = "SELECT * FROM


Bébé Where SBU LIKE
'" & Text1.Text & "'"
TonDataEnvironnement.TaCommande.Open

Ensuite, tu peux faire tout ce que tu veux avec comme si


c'était un
Recordset d'ADO ou presque. Par exemple voir si


l'enregistrement correspond
à un critère particulier comme :

If TonDataEnvironnement.TaCommande!SBU = "Ingrid" Then
MsgBox "Bonjour Ingrid"
End if

Si tu connais un peu le principe du mouvement dans le


résultat d'une
requête, tu peux donc faire toutes les recherches que tu


veux pour vérifier
chaque enregistrement à l'aide d'une boucle.

En fonctionnant de cette façon, tu te trouves à utiliser


ton
DataEnvironnement uniquement afin d'avoir ta connexion à


ta base de données.
De plus puisque maintenant ta commande est redéfinie à


chaque fois dans le
code lorsque tu l'appelles, tu peux avoir toute la


flexibilité que tu
désires et ainsi inclure des variables dans tes requêtes


SQL. Ce qui est
impossible à faire directement quand tu crées ta commande


dans le
DataEnvironnement.

J'espère que tu as compris le principe et que mes


explications ont été assez
claires pour t'aider.

@ +

Denis P

"Ingrid Bauer" a écrit dans le


message de
news:1cab01c372f5$47868ca0$
Merci Denis mais ça ne marche pas...Ton code est bon mais
pour une requete Access ça passe pas dans VB.

J'essaye maintenant de créér un command SQL via un command
button est ce que et ci dessous le code. Est ce que c'est
comme ça qu'on crééé automatiquement une requete SQL. Qd
je clique je vais dans mon data environment pour voir si
le command SQL a été créé je trouve rien


Dim x As New DataEnvironment1
x.Connection2.Open
x.Connection2.Execute "SELECT Bébé.* FROM bébé WHERE
('Nom'=' & Form1.Text1.Text & ') "
MsgBox "finish"


Thanks
Bisous
Ingrid
-----Message d'origine-----
Bonjour Ingrid,

Bon je ne connais vraiment le SQL BUILDER de VB6. Par


contre à première vue
il suffirait peut-être de retirer simplement Bébé.SBU


dans la partie SELECT
de ta requête comme ceci :

SELECT Bébé.* FROM Bébé
WHERE (((Bébé.SBU)=[Forms]![[frmDataEnv]![Text1]));

Ensuite, reste à savoir de quel type est ton champ SBU.


Par exemple s'il
est numérique ça va comme tu as fait ta requête, par


contre s'il est en
texte par exemple , tu dois mettre ta variable entre


apostrophe comme
Bébé.SBU = 'TaVariable'. Encore là, selon les bases de


données le = ne
fonctionne pas toujours pour les comparaisons de chaîne


de caractères. Dans
ce cas il est parfois mieux d'utiliser LIKE plutôt que =


pour effectuer la
comparaison.

Comme je disais, je ne connais pas vraiment SQL BUILDER,


par contre pour
écrire ta requête directement dans ton code elle devrait


ressembler à ceci
si ton champ SBU est numérique :

"SELECT * FROM Bébé WHERE SBU = " & Text1.Text


sans apostrophe ici

et à ceci si c'est une chaîne de caractère :

"SELECT * FROM Bébé WHERE SBU LIKE '" & Text1.Text


& "'" avec
apostrophe ici

Espérant avoir pu t'aider un peu

@ +

Denis P

"ingrid bauer" a écrit dans le


message de
news:1b2301c372de$b61288c0$
Hello,

j'essaye de générer une requête dans le SQL BUILDER de
VB6 et ça marche pas j'ai un message d'erreur qui dit
que "Le paramètre [Forms]![frmDataEnv]![Text1] n'a pas de
valeur par défaut"....En fait il s'agit d'une variable
dans mon form VB6...Je tape la valeur du Text1 et et ça
marche pas. Ci dessous le code SQL:

SELECT Bébé.*, Bébé.SBU
FROM Bébé
WHERE (((Bébé.SBU)=[Forms]![[frmDataEnv]![Text1]));

Merci d'avance
Bisous
Ingrid


.





.



Avatar
Denis
Bonjour Ingrid,

Je crois que j'ai omis un petit détail dans ce que je t'avais écrit. Excuse
de l'erreur, mais essaie de cette façon plutôt:

DataEnvironnement.rsCommand2.Source = "SELECT * FROM TaTable"

Comme je te disais, le DataEnvironnement est un peu loin dans ma mémoire.
Tu dois simplement ajouter rs devant la commande que tu appelles, afin
d'appeler le recordset de ta commande plutôt que la commande elle-même.
Donc partout où tu auras DataEnvironnement.Command dans ton code rajoute rs
devant Command et tout devrait fonctionner, du moins je l'espère cette fois.

Tu m'en donneras des nouvelles

@ +

Denis P

"Ingrid bauer" a écrit dans le message de
news:2a1301c373a8$8cfd8230$
Denis,

Merci bcp pour ta reponse...

J'ai essayé ta solution (DataEnvironnement.Command2.Source
=...) mais j'ai un message d'erreur:
Compile Error:
"Argument not optional"

je suis desoléé de t'embeter avec ça.....

Merci
Bisous
Ingrid la neerlandaise


-----Message d'origine-----
ReBonjour Ingrid,

Mais oui une requête Access passe dans VB, il faut juste


la bonne méthode.

Maintenant je comprend, tu fonctionnes avec un


DataEnvironnement. Désolé
mais mes notions avec le DataEnvironnement sont un peu


loin dans ma mémoire.
Il y a déjà un bout de temps que j'ai abandonné le


DataEnvironnement,
vraiment pas assez convial et on est beaucoup trop limité


dans nos actions.
Le code que je te donnais par contre est parfait quand on


fonctionne avec
ADO. D'accord ADO est plus complexe que le


DataEnvironnement, mais Grand
Dieu tellement plus convial. C'est justement dû à la


difficulté de passer
des variable dans une requête, que j'ai opté pour ADO.

Par contre évidemment il est possible de modifier ta


requête qui est dans
une commande de ton DataEnvironnnement et de parvenir à


lui passer tes
variables. Si tu veux continuer d'utiliser le


DataEnvironnement et
fonctionner un peu comme avec ADO c'est toujours


possible. Pour se faire
lorsque ton DataEnvironnment est créé et que tu as au


moins une commande de
créer aussi (remarque tu peux te créer une commande bidon


qui te servira à
la modifier par la suite dans ton code) Exemple tu te


crées une commande
dont la requête SQL est simplement SELECT * FROM


MaTable. Par la suite
dans ton code, tu viens changer la source de ta commande


de cette façon :

TonDataEnvironnement.TaCommande.Source = "SELECT * FROM


Bébé Where SBU LIKE
'" & Text1.Text & "'"
TonDataEnvironnement.TaCommande.Open

Ensuite, tu peux faire tout ce que tu veux avec comme si


c'était un
Recordset d'ADO ou presque. Par exemple voir si


l'enregistrement correspond
à un critère particulier comme :

If TonDataEnvironnement.TaCommande!SBU = "Ingrid" Then
MsgBox "Bonjour Ingrid"
End if

Si tu connais un peu le principe du mouvement dans le


résultat d'une
requête, tu peux donc faire toutes les recherches que tu


veux pour vérifier
chaque enregistrement à l'aide d'une boucle.

En fonctionnant de cette façon, tu te trouves à utiliser


ton
DataEnvironnement uniquement afin d'avoir ta connexion à


ta base de données.
De plus puisque maintenant ta commande est redéfinie à


chaque fois dans le
code lorsque tu l'appelles, tu peux avoir toute la


flexibilité que tu
désires et ainsi inclure des variables dans tes requêtes


SQL. Ce qui est
impossible à faire directement quand tu crées ta commande


dans le
DataEnvironnement.

J'espère que tu as compris le principe et que mes


explications ont été assez
claires pour t'aider.

@ +

Denis P

"Ingrid Bauer" a écrit dans le


message de
news:1cab01c372f5$47868ca0$
Merci Denis mais ça ne marche pas...Ton code est bon mais
pour une requete Access ça passe pas dans VB.

J'essaye maintenant de créér un command SQL via un command
button est ce que et ci dessous le code. Est ce que c'est
comme ça qu'on crééé automatiquement une requete SQL. Qd
je clique je vais dans mon data environment pour voir si
le command SQL a été créé je trouve rien


Dim x As New DataEnvironment1
x.Connection2.Open
x.Connection2.Execute "SELECT Bébé.* FROM bébé WHERE
('Nom'=' & Form1.Text1.Text & ') "
MsgBox "finish"


Thanks
Bisous
Ingrid
-----Message d'origine-----
Bonjour Ingrid,

Bon je ne connais vraiment le SQL BUILDER de VB6. Par


contre à première vue
il suffirait peut-être de retirer simplement Bébé.SBU


dans la partie SELECT
de ta requête comme ceci :

SELECT Bébé.* FROM Bébé
WHERE (((Bébé.SBU)=[Forms]![[frmDataEnv]![Text1]));

Ensuite, reste à savoir de quel type est ton champ SBU.


Par exemple s'il
est numérique ça va comme tu as fait ta requête, par


contre s'il est en
texte par exemple , tu dois mettre ta variable entre


apostrophe comme
Bébé.SBU = 'TaVariable'. Encore là, selon les bases de


données le = ne
fonctionne pas toujours pour les comparaisons de chaîne


de caractères. Dans
ce cas il est parfois mieux d'utiliser LIKE plutôt que >pour effectuer la
comparaison.

Comme je disais, je ne connais pas vraiment SQL BUILDER,


par contre pour
écrire ta requête directement dans ton code elle devrait


ressembler à ceci
si ton champ SBU est numérique :

"SELECT * FROM Bébé WHERE SBU = " & Text1.Text


sans apostrophe ici

et à ceci si c'est une chaîne de caractère :

"SELECT * FROM Bébé WHERE SBU LIKE '" & Text1.Text


& "'" avec
apostrophe ici

Espérant avoir pu t'aider un peu

@ +

Denis P

"ingrid bauer" a écrit dans le


message de
news:1b2301c372de$b61288c0$
Hello,

j'essaye de générer une requête dans le SQL BUILDER de
VB6 et ça marche pas j'ai un message d'erreur qui dit
que "Le paramètre [Forms]![frmDataEnv]![Text1] n'a pas de
valeur par défaut"....En fait il s'agit d'une variable
dans mon form VB6...Je tape la valeur du Text1 et et ça
marche pas. Ci dessous le code SQL:

SELECT Bébé.*, Bébé.SBU
FROM Bébé
WHERE (((Bébé.SBU)=[Forms]![[frmDataEnv]![Text1]));

Merci d'avance
Bisous
Ingrid


.





.