Une fois encore combobox

kaiemma Messages postés 22 Date d'inscription mercredi 19 août 2009 Statut Membre Dernière intervention 5 mars 2012 - 15 sept. 2009 à 18:13
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 - 15 sept. 2009 à 20:02
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

cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
15 sept. 2009 à 20:02
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
0
Rejoignez-nous