|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : VB6 : Pb avec requete sql pourtant simple ! [ Archives Visual Basic / Bases de données ] (mortalino)
Informations & options pour cette discussion
|
dimanche 14 mai 2006 à 14:54:40 |
VB6 : Pb avec requete sql pourtant simple !

mortalino
|
Salut à tous !
J'ai un ch'ti problème avec une requête qui marche 1 fois sur 2 ??
J'ai une bdd Access nommée "TMD"
Exemple des 2ères entrées :
* Champs 1 (NomProduit)
1/ ACETYLENE DISSOUS
2/ AIR COMPRIME contenant au plus 23,5 pour cent d'oxygène, par volume
* Champs 2 (CodeDanger)
1/ 239
2/ 20
* Champs 3 (CodeMatiere)
1/ 1001
2/ 1002
_______________________________________________________________________________Puis dans VB, j'ai un Module(RefNico) et une Form(frmCodes) :
lbxNomProduits c'est une ListBox, reprenant tout mes produits (y'en a 1924)
Module :
Public NomBase As String, db As Database
Form:
Private Sub lbxNomProduits_Click()
Dim NomProduitU As String
NomProduitU = Me.lbxNomProduits
Me.lblNomProduit.Caption = NomProduitU
Dim Rs As Recordset, sql As String
Dim NbNomProduits As Integer
NomBase = App.Path & "\TMD"
Set db = DBEngine.Workspaces(0).OpenDatabase(NomBase)
sql = "SELECT CodeDanger, CodeMatiere FROM ListeProduit WHERE NomProduit='" & NomProduitU & "'"
Set Rs = db.OpenRecordset(sql)
Me.lblCodeDanger.Caption = Rs!CodeDanger
Me.lblCodeMatiere.Caption = Rs!CodeMatiere
Rs.Close
db.Close
End Sub
Le problème :
quand je clique sur "ACETYLENE DISSOUS", aucun problème de recherche, j'ai bien mon code mdanger et matière qui sont trouvés, par contre,
Si je clique sur "AIR COMPRIME contenant au plus 23,5 pour cent d'oxygène, par volume", cette ligne se met en jaune :
Set Rs = db.OpenRecordset(sql)
et j'ai le message suivant :
Erreur d'execution '3075':
Erreur de syntaxe (Opérateur absent) dans l'expression 'NomProduit='AIR COMPRIME contenant au plus 23,5 pour cent d'oxygène, par volume".
Si quelqu'un à la solution, merci
Mortalino
PS : Ca marche sur certains produits et PAS sur d'autres.
|
|
|
|
dimanche 14 mai 2006 à 15:03:56 |
Re : VB6 : Pb avec requete sql pourtant simple !

Clad49
|
Salut !
Peut être que la clé que tu recherche est trop long ou kil n'aime pas les "," ! Tu peut éssayer de créé une clé unique (par exemple un chanp id en auto incrémentation)
ps : Public db As Database Public rs As Recordset
Clad
|
|
|
|
dimanche 14 mai 2006 à 15:26:50 |
Re : VB6 : Pb avec requete sql pourtant simple !

mortalino
|
J'ai, comme tu dis, l'impression qu'il plante sur des nom trop long, ou lorsqu'il y a des "," ou des "°" dans le texte.
Effectivement j'ai les numéros automatiques incrémentés.
Comment lui dire en sql de me récupérer les infos par ce numéro ?
SELECT CodeDanger, CodeMatiere FROM ListeProduit WHERE ????
que dois je mettre pour le numéro de clée ?
Merci clad49.
Mortalino
|
|
|
|
dimanche 14 mai 2006 à 15:51:15 |
Re : VB6 : Pb avec requete sql pourtant simple !

jack
|
Réponse acceptée !
Salut Regarde ta syntaxe telle que tu l'as donnée dans ton message d'erreur : Les champs texte sont encadrés par des apostrophes --> Nom = 'contenu cherché' Si, dans le contenu d'un texte, il y a un ou plusieurs signes apostophes ', la syntaxe devient fausse. Il suffit donc de trafiquer le contenu des champs. Cette simple instruction de doublage des ' suffira : sql = Replace(NomProduitU, "'", "''") sql = "SELECT CodeDanger, CodeMatiere FROM ListeProduit WHERE NomProduit='" & sql & "'"
Pendant que tu es dans les corrections, "dissous" s'écrit "dissout".
Vala Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Champion du monde de boule de cristal - 2005 Le savoir est la seule matière qui s'accro
|
|
|
|
dimanche 14 mai 2006 à 16:14:32 |
Re : VB6 : Pb avec requete sql pourtant simple !

mortalino
|
Merci Jack,
c'est nickel. Je me disais bien que dans le message d'erreur il y avait un problème dans le placement des apostrophes, alors que ca marchait sur d'autres.
Donc, merci de résoudre mon prob.
Pour info, "dissous" s'écrit bien comme ça, j'ai vérifié sur Google par acquis de conscience mais merci quand même (tant qu'à faire une appli, autant que l'hortographe soit bon).
++
Mortalino
|
|
|
|
dimanche 14 mai 2006 à 16:49:43 |
Re : VB6 : Pb avec requete sql pourtant simple !

jack
|
Bien sûr dissous existe : Tu dissous Mais un produit dissout, avec un t (de la soude dissoute, et pas dissouse) à moins que ce soit un terme dédié
|
|
|
Cette discussion est classé dans : problème, sql, db, rs, nomproduitu
Répondre à ce message
Sujets en rapport avec ce message
URGENT ! PB Err Type sur requete SQL [ par Balin ]
Salut ! J'en ai marre je comprend rien !G bien déclaré mes variables et pourtant il me sort cette %#!!*µ d'erreur a chaque fois !Je suis pas très doué
ListBox et requête SQL [ par stasze ]
Bonjour à toutes et à tous. Je suis débutant en VB et j'ai commencé un petit programme pour mon travail. J'ai fait une petite base de données sous Acc
Pb SQL pour modifier des champs(debutant inside) [ par bibouse ]
Bonjour,J'ai un soucis sous access 2003.Je veux modifer des champ d'une table importée d'excel mais malgré l'utilisation d'exemples de source dispo su
Sql : enregistrement existe ? [ par Booster ]
Bonjour,Alors voila j'aimerais savoir si un enregistrement existe ou pas dans ma table ! je suis aller voir sur le forum vbfrance et j'ai trouver sa :
Pb affichage [ par biddal ]
' -----' Form2' -----'Option Explicit''Public Sub Form_Load() Dim rs As Recordset Dim Sql As String ' ouvre la base On Error GoTo Bas
Je débute pb pour faire une boucle. [ par biddal ]
' -----' Form2' -----'Option Explicit''Public Sub Form_Load() Dim rs As Recordset Dim sql As String ' ouvre la base On Error GoTo Bas
pb Set rs = DB.OpenRecordset(Sql, dbOpenDynaset) [ par biddal ]
Voila mon code, et j'ai une erreur d'execution ICI et je ne vois pas ce que c'est.' -----' Form1' -----'Option Explicit'Public Typ As Long''Private Su
Requetes sous access [ par aaliyan ]
Bonjour, j'aimerais savoir, si c'est possible, lorsque l'on a pas trouvé de champs dans une requete select, si c'est possible d'ajouter une valeur dan
Pb avec dbopensnapshot [ par fredpop37 ]
Bonjour,Débutant, j'ai un sérieux problème avec le code très court qui suit :Option ExplicitPublic db As DatabasePublic rs As RecordsetPublic sql As S
Problème avec les ' [ par Goth25 ]
Bonjours a tous,Avec l'aide d'une requête Sql, je recherche une entreprise dans une des table de ma BD dont le nom est ègal a une variable.Code :'Rec
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
|