A voir également:
- Requete sql dans vb Access
- Vb - Télécharger - Langages
- Vb cable - Télécharger - Audio & Musique
- Access appdata - Guide
- Acer quick access - Forum logiciel systeme
- Sql lister les tables ✓ - Forum Programmation
5 réponses
Tout a fait normal que ta requete plante... Elle ne considère tes variables que comme des integers, pour les variables de types string il faut doubler les double quotes...
dim a as string
dim b as integer
dim c as date
sql = "... champ1 = " & b & "... champ2= "" & a & ""... champ3 =#" & c & "#..."
Voilà plus ou moins une méthode valable... à tester!
dim a as string
dim b as integer
dim c as date
sql = "... champ1 = " & b & "... champ2= "" & a & ""... champ3 =#" & c & "#..."
Voilà plus ou moins une méthode valable... à tester!
Merci, cela fonctionne parfaitement!
Je ne suis pas expert, et dans l'aide de Access, dur dur de lui faire comprendre ce que l'on veut. Enfin si j'avais mieux chercher j'aurais peut être trouvé.
C'est agréable de savoir que quelqu'un peut nous aider, surtout quand l'on attérit comme moi sur du vb, sans connaître aucun langage de programamtion.
Encore merci et bonne journée
Affaire résolue!
comment on fait pour mettre résolu sur cette discussion?
Je ne suis pas expert, et dans l'aide de Access, dur dur de lui faire comprendre ce que l'on veut. Enfin si j'avais mieux chercher j'aurais peut être trouvé.
C'est agréable de savoir que quelqu'un peut nous aider, surtout quand l'on attérit comme moi sur du vb, sans connaître aucun langage de programamtion.
Encore merci et bonne journée
Affaire résolue!
comment on fait pour mettre résolu sur cette discussion?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
hum hum...
sa marche poa en fait..
conclusion trop hative ...
quand j'ai appuyé sur le bouton "enregistrer" l'enregistrement s'est bien réalisé.
Mais la requête ne fonctionne plus correctement.
en mettant les double "" comme indiqué par bnb :
sql = ... champ2= "" & a & ""...
le RecordCount me trouve toujours 0 et donc je peux enregistrer en permanence des lignes similaires.
Quel dommage!
je me suis fait avoir tout seul par mon manque d'expérience et des conclusions trop rapide!
Si quelqu'un peut m'aider?
Voici mon nouveau script qui me donne une requête.RecordCount = 0 :
Private Sub EnregistreAnalyse_Click()
Dim Mydb As Database
Dim JeuAnalyse, VerifAnalyse, VerifAnalyse2 As Recordset
Dim CdSupportAna, CdFraction, CdMethodeAna, CdUnite, CdParametre As String
Dim ResultatAna, PtPrelAnalyse, PrelevAnalyse, repVerif, robert As Integer
CdSupportAna = Me!CdSupportAna.Value
CdParametre = Me!CdParametre.Value
CdFraction = Me!CdFraction.Value
CdMethodeAna = Me!CdMethodeAna.Value
CdUnite = Me!CdUnite.Value
ResultatAna = Me!ResultatAna.Value
PtPrelAnalyse = Me!PtPrelAnalyse.Value
PrelevAnalyse = Me!PrelevAnalyse.Value
Set Mydb = CurrentDb
sql9 = "SELECT Analyse.ID_Prelev FROM Analyse WHERE (((Analyse.ID_Prelev)=" & PrelevAnalyse & ") AND ((Analyse.ResultatAna)=" & ResultatAna & ") AND ((Analyse.CdParametre)=""& CdParametre &"") AND ((Analyse.CdUnite)=""& CdUnite &"") AND ((Analyse.CdSupport)=""& CdSupportAna& "") AND ((Analyse.CdFraction)=""& CdFraction &""));"
Set Mydb = CurrentDb
Set VerifAnalyse = Mydb.OpenRecordset(sql9)
'test message box pour voir combien de ligne me trouve la requête
robert = VerifAnalyse.RecordCount
MsgBox robert
Select Case VerifAnalyse.RecordCount
Case Is = 0
Set JeuAnalyse = Mydb.OpenRecordset("Analyse")
JeuAnalyse.MoveLast
JeuAnalyse.AddNew
JeuAnalyse!ID_Prelev = PrelevAnalyse
JeuAnalyse!CdSupport = CdSupportAna
JeuAnalyse!CdParametre = CdParametre
JeuAnalyse!CdFraction = CdFraction
JeuAnalyse!CdMethode = CdMethodeAna
JeuAnalyse!CdUnite = CdUnite
JeuAnalyse!ResultatAna = ResultatAna
JeuAnalyse.Update
JeuAnalyse.MoveLast
'Affiche le bouton annuler et avance
Me!AvanceAna.Visible = True
Me!AnnulerAnalyse.Visible = True
MsgBox "les données ont été enregistrées avec success"
Case Is <> 0
MsgBox ("Vous ne pouvez pas ajouter cette analyse. " & Chr(13) & " Une analyse pour le même prélèvement, le même parametre et le même résultat existe déjà ")
Exit Sub
End Select
End Sub
Merci d'avance !
sa marche poa en fait..
conclusion trop hative ...
quand j'ai appuyé sur le bouton "enregistrer" l'enregistrement s'est bien réalisé.
Mais la requête ne fonctionne plus correctement.
en mettant les double "" comme indiqué par bnb :
sql = ... champ2= "" & a & ""...
le RecordCount me trouve toujours 0 et donc je peux enregistrer en permanence des lignes similaires.
Quel dommage!
je me suis fait avoir tout seul par mon manque d'expérience et des conclusions trop rapide!
Si quelqu'un peut m'aider?
Voici mon nouveau script qui me donne une requête.RecordCount = 0 :
Private Sub EnregistreAnalyse_Click()
Dim Mydb As Database
Dim JeuAnalyse, VerifAnalyse, VerifAnalyse2 As Recordset
Dim CdSupportAna, CdFraction, CdMethodeAna, CdUnite, CdParametre As String
Dim ResultatAna, PtPrelAnalyse, PrelevAnalyse, repVerif, robert As Integer
CdSupportAna = Me!CdSupportAna.Value
CdParametre = Me!CdParametre.Value
CdFraction = Me!CdFraction.Value
CdMethodeAna = Me!CdMethodeAna.Value
CdUnite = Me!CdUnite.Value
ResultatAna = Me!ResultatAna.Value
PtPrelAnalyse = Me!PtPrelAnalyse.Value
PrelevAnalyse = Me!PrelevAnalyse.Value
Set Mydb = CurrentDb
sql9 = "SELECT Analyse.ID_Prelev FROM Analyse WHERE (((Analyse.ID_Prelev)=" & PrelevAnalyse & ") AND ((Analyse.ResultatAna)=" & ResultatAna & ") AND ((Analyse.CdParametre)=""& CdParametre &"") AND ((Analyse.CdUnite)=""& CdUnite &"") AND ((Analyse.CdSupport)=""& CdSupportAna& "") AND ((Analyse.CdFraction)=""& CdFraction &""));"
Set Mydb = CurrentDb
Set VerifAnalyse = Mydb.OpenRecordset(sql9)
'test message box pour voir combien de ligne me trouve la requête
robert = VerifAnalyse.RecordCount
MsgBox robert
Select Case VerifAnalyse.RecordCount
Case Is = 0
Set JeuAnalyse = Mydb.OpenRecordset("Analyse")
JeuAnalyse.MoveLast
JeuAnalyse.AddNew
JeuAnalyse!ID_Prelev = PrelevAnalyse
JeuAnalyse!CdSupport = CdSupportAna
JeuAnalyse!CdParametre = CdParametre
JeuAnalyse!CdFraction = CdFraction
JeuAnalyse!CdMethode = CdMethodeAna
JeuAnalyse!CdUnite = CdUnite
JeuAnalyse!ResultatAna = ResultatAna
JeuAnalyse.Update
JeuAnalyse.MoveLast
'Affiche le bouton annuler et avance
Me!AvanceAna.Visible = True
Me!AnnulerAnalyse.Visible = True
MsgBox "les données ont été enregistrées avec success"
Case Is <> 0
MsgBox ("Vous ne pouvez pas ajouter cette analyse. " & Chr(13) & " Une analyse pour le même prélèvement, le même parametre et le même résultat existe déjà ")
Exit Sub
End Select
End Sub
Merci d'avance !