DjMedz
Messages postés16Date d'inscriptionmercredi 8 août 2007StatutMembreDernière intervention 2 octobre 2008
-
15 août 2007 à 17:18
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 2007
-
16 août 2007 à 03:22
Voila, je débute en VB6 et aimerais créer un programme pour une compagnie qui utilise une base de donnée. Il s'agit d'entrer des donnée dans les champs et pouvoir le consulter plus tard
voila ce que jai réussi a produire mais chaque fois que je vien pour l'ouvrir j'obtien le message
Ambigus name detected... je ne sais trop quoi faire
j'ai ajouter au début du projet la référence Microsoft DAO 2.5/3.5 compatibility library
merci
ma base de donnée se nomme employe97 et la table a linterieur se nomme employe
ce serait tres aprécié si quelqu'un pouvait m'aider
voici mon code
dans le module jai inscrit ..........
Public rs As Database
Public rs As Recordset
Public sql As String
et dans la form1...........
Private Sub cmdAjouter_Click()
sql = "select * from employe" ''' On séléctionne tous les champs de la table
Set rs = db.OpenRecordset(sql, dbOpenDynaset) ''' ici on est bien en mode écriture (dbOpenDynaset)
rs.Update 'Une fois les valeurs définies, on met à jour
rs.Close
End Sub
Private Sub cmdConsulter_Click()
sql = "select * from employe where nom='" & txtNom.Text & "' " '''Remarqué la présence de ' obligatoire pour le bon fonctionnemnt
Set rs = db.OpenRecordset(sql, dbOpenSnapshot)
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 15 août 2007 à 23:40
non browser64 ...
une erreur d' ambiguité,s' il y' en a, se situe toujours au niveau des declarations.
Dans ce cas précis, c' est rs qui est doublement declaré.Une fois comme Database
et une fois comme Recordset. il ne sait pas lequel retenir.
De plus db n' est pas declaré.Alors c' est juste une question d' inattention.
DjMedz
Messages postés16Date d'inscriptionmercredi 8 août 2007StatutMembreDernière intervention 2 octobre 2008 16 août 2007 à 02:20
Merci chaibat05, c'était en effet une erreur d'innatention avec db as database tout fonctionne, par contre y a t'il moyen de lui spécifié que si un champ est manquant un msgbox apparaisse et ensuite qu'on puisse continuer a entrer des données, car avec les if txtnom.text = "" then, bla bla bla, il y a erreur par la suite
Vous n’avez pas trouvé la réponse que vous recherchez ?
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 16 août 2007 à 03:22
Pour ce qui est de la vérif des données, il faut juste savoir
bien gérer l' erreur.Ou bien en faire une fonction pour voir si
ça correspond ou pas.
Function Verif() As Boolean
If txtNom.Text="" Then
MsgBox "Nom manquant !",VbOkOnly+VbInformation,"..."
txtNom.SetFocus
Exit Function
End If
If txtPrenom.Text="" Then
MsgBox "Prénom manquant !",VbOkOnly+VbInformation,"..."
txtPreom.SetFocus
Exit Function
End If
If txtSalair.Text="" Then
MsgBox "Montant manquant !",VbOkOnly+VbInformation,"..."
txtSalair.SetFocus
Exit Function
End If
'Normalement salaire est de type numérique.
'Il faut donc vérifier aussi si ça correspond au même format que ton champ.
'Ce format peut tout aussi bien être controlé au moment de la saisie.
Verif=True ' => tout est Ok
End Function
NB: à mon avis il faut aussi vérifier si l' enregistrement (Nom+Prenom) n' éxiste pas déjà.
A ce qu' il parait , c' est ta clé primaire.
---
> Pour l' enregistrement
Private Sub cmdAjouter_Click()
'tu commences donc par vérifier...
If Verif=False Then Exit Sub
'toutes les erreurs étant signalées au niveau de la fonction,un Exit Sub suffit donc.
'
's' il continues c' est que tout est OK
'Mais il se peut qu' il y' ait une autre erreur au niveau qui suit
'tu ajoutes donc
On Error Got Err_Add
sql = "select * from employe"
Set rs = db.OpenRecordset(sql, dbOpenDynaset) '
rs.AddNew
rs.Fields("Nom") = txtNom.Text
rs.Fields("prenom") = txtPrenom.Text
rs.Fields("Salaire") = txtSalaire.Text
rs.Update
rs.Close
Exit Sub '=> il n' a pas eu d' erreur
Err_Add: '=>il y a eu erreur
MsgBox Err.Description 'Pour avoir une description et donc une idée de l' erreur
End Sub