Erreur 438 [Résolu]

Signaler
Messages postés
10
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
28 décembre 2009
-
Messages postés
10
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
28 décembre 2009
-
Bonjour tout le monde,
voilà j'ai besoin d'une aide parceque je sais plus koi faire.
En fait, je résume le problème: Je veux entrer des informations à une table, ds une BD bien sur. Une fois elles sont entrées, je dois récupérer leurs "id" qu'est un numéro de type numéro automatique; et afficher le continu sur un textbox. Mais une erreur 438, survient lors de l'execution et affiche"L'objet ne gère pas cette prropriété ou cette méthode".
J'ai tout essayé mais pas de solution.
Voila je donne le code pour avoir une idée:
[b]If nvaccin.Text = "" Then
MsgBox "Veuillez saisir le nom du nouveau vaccin.", vbInformation, "-Nom Vaccin-"
Exit Sub
End If
sql = "select *from vaccin" ' On sélectionne tous les champs de la table
Set rs = db.OpenRecordset(sql, dbOpenDynaset) ' ici on est bien en mode écriture (dbOpenDynaset)

rs.AddNew 'Pour ajouter un enregistrement
rs.Fields("nomvac") = nvaccin.Text
rs.Update 'Une fois les valeurs définies, on met à jour
rs.Close
MsgBox "ajout dans table vaccin reussi"

sql1 "select * from vaccin where nomvac'" & Replace(nvaccin.Text, "'", "''") & "'"
rs1 = db.OpenRecordset(sql1, dbOpenSnapshot)
nd.Text = rs1.Fields("idvaccin")/b
Merci d'avance pour votre aide.

4 réponses

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
de même, collectionner les requetes sql, sql1.... pas la peine.

Allez, un coup de nettoyage:
    If LenB(nvaccin.Text) Then
        With db.OpenRecordset("vaccin", dbOpenDynaset)
            .AddNew
                .Fields("nomvac").Value = nvaccin.Text
                nd.Text = .Fields("idvaccin").Value
            .Update
            .Close
        End With
        MsgBox "ajout dans table vaccin reussi"
    Else
        MsgBox "Veuillez saisir le nom du nouveau vaccin.", vbExclamation, "-Nom Vaccin-"
    End If



Renfield - Admin CodeS-SourceS - MVP Visual Basic
Messages postés
345
Date d'inscription
mardi 1 juin 2004
Statut
Membre
Dernière intervention
17 octobre 2014
3
bonjour,
tu devrais récupérer l'ID au moment de l'addnew :
 rs.AddNew
 ...
 x = rs!ID
 rs.Update


thip
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
et éviter les Select * pour n'exploiter qu'un champ.


Renfield - Admin CodeS-SourceS - MVP Visual Basic
Messages postés
10
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
28 décembre 2009

Merci beaucoup, ça tourne.