Ajouter nouvel enregistrement

Résolu
Gooms Messages postés 1 Date d'inscription mercredi 2 juillet 2008 Statut Membre Dernière intervention 5 juillet 2008 - 5 juil. 2008 à 16:49
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 5 juil. 2008 à 17:24
Bonjour.

Voila je bute sur tout ceci...

Le fenetre de travail s'appelle frmNew

La base de donnée s'appelle GPM.mdb
La table s'appelle TABLEGPM

voici le code:


Private Sub cmdCancel_Click()

frmNew.Hide

Unload frmNew

Load frmIndex1

End Sub

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Private Sub cmdNew_Click()

adoPrimaryRS.AddNew

End Sub

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Private Sub Form_Load()

Dim adoPrimaryRS As Recordset

Dim mbChangedByCode As Boolean

Dim mvBookMark As Variant

Dim mbEditFlag As Boolean

Dim mbAddNewFlag As Boolean

Dim mbDataChanged As Boolean

Dim db As Database



frmNew.Show


Set db = OpenDatabase("C:\VB\gpm.mdb")


Set adoPrimaryRS = db.OpenRecordset("TABLEGPM", dbOpenTable)

mbDataChanged = False


End Sub

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

If mbEditFlag Or mbAddNewFlag Then Exit Sub

Select Case KeyCode

Case vbKeyEnd

cmdLast_Click

Case vbKeyHome

cmdFirst_Click

Case vbKeyUp, vbKeyPageUp

If Shift = vbCtrlMask Then

cmdFirst_Click

Else

cmdPrevious_Click

End If

Case vbKeyDown, vbKeyPageDown

If Shift = vbCtrlMask Then

cmdLast_Click

Else

cmdNext_Click

End If

End Select

End Sub

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Private Sub adoPrimaryRS_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)

'Ceci affichera la position de l'enregistrement actif pour ce jeu d'enregistrements

lblStatus.Caption = "Record: " & CStr(adoPrimaryRS.AbsolutePosition)

End Sub

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Private Sub adoPrimaryRS_WillChangeRecord(ByVal adReason As ADODB.EventReasonEnum, ByVal cRecords As Long, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)

'Insérez ici le code de validation

'Cet événement est appelé lorsque les actions suivantes se produisent

Dim bCancel As Boolean

Select Case adReason

Case adRsnAddNew

Case adRsnClose

Case adRsnDelete

Case adRsnFirstChange

Case adRsnMove

Case adRsnRequery

Case adRsnResynch

Case adRsnUndoAddNew

Case adRsnUndoDelete

Case adRsnUndoUpdate

Case adRsnUpdate

End Select

If bCancel Then adStatus = adStatusCancel

End Sub


Mon soucis vient du bouton "New" Quand je clique dessus je souhait qu'il insere ce que j'aurai mis sur la feuille dans la base de donnée. Donc j'ai mis:



adoPrimaryRS.AddNew



Sauf que la ca me met " Erreur 424: un objet est requis"

Je debute VB et là je m'arrache les cheveux.... J'ai du oublier de mettre des commandes...

Si une ame charitable peut m'aider...

1 réponse

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
5 juil. 2008 à 17:24
salut,

pas loin ^^

en fait pour qu'une variable soit accessible partout dans la feuille, elle doit être déclarée tout en haut (sous Déclaration)

or tu as déclaré adoPrimaryRS dans le form_Load, ce qui fait que  n'existe pas au click

tu dois juste remonter tout çà :

Dim adoPrimaryRS As Recordset

Dim mbChangedByCode As Boolean

Dim mvBookMark As Variant

Dim mbEditFlag As Boolean

Dim mbAddNewFlag As Boolean

Dim mbDataChanged As Boolean

Dim db As Database

tout en haut

NB : ajoute en toute toute première ligne OPTION EXPLICIT , ce dans chaque form module etc...çà te permettra de relever une erreur de variable non déclarée

++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp  
3
Rejoignez-nous