Une fois encore combobox

Signaler
Messages postés
22
Date d'inscription
mercredi 19 août 2009
Statut
Membre
Dernière intervention
5 mars 2012
-
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
-
bonsoir,
je suis toujours sur le projet même projet et je ne comprends pas pourquoi un code que j'ai déja utilisé refuse de marcher aujourd'hui, le voici:Sub Comboentree()
If Combo1 <> "" Then
Set Rec = MaBase.OpenRecordset("select * from Produits where Designation=" & Combo1 & "")
If Rec.RecordCount > 0 Then
Label9 = UCase(Rec!Reference)
Label12 = UCase(Rec!Prixu)
Else
MsgBox "Donnée indisponible"
End If
End If
End Sub
merci de m'aider

1 réponse

Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
14
Nomme tes contrôles, n'utilise pas les propriétés par défaut des objets (c'est plus logique de noter le nom complet à chaque fois) et dimensionne tes variables ! Si tu ne fais pas ça, quand tu devras débugger un projet +- grand, tu vas y passer des jours ... Fais aussi très attention aux injections SQL !
Option Explicit

Public Function Pure(S As String) As String
 Pure = Replace(S,"'","''")
End Function

'...

Sub Comboentree()
 If Combo1.Text <> "" Then
  Dim Rec as Recordset, SQL As String
  SQL = "SELECT * FROM Produits WHERE Designation='" & Pure(Combo1.Text) & "';"
  Set Rec = MaBase.OpenRecordset(SQL)
  If Rec.RecordCount > 0 Then
   Label9.Caption = UCase(Rec!Reference)
   Label12.Caption = UCase(Rec!Prixu)
   Else
    MsgBox "Données indisponibles !", vbExclamation
  End If
 End If
End Sub

---
VB.NET is good ... VB6 is better