Problème d'enregistrement sur une table

Tgm45 Messages postés 24 Date d'inscription   Statut Membre Dernière intervention   -  
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   -

Bonjour,

J'ai un soucis pour enregistrer des données sur une table que je ne comprends pas. Je fais un logiciel de suivi de matériels et comme la base de données regroupe 12k outils, j'ai ma base de données divisé en deux. Une partie pour les fiches modèle qui regroupe le nom du matériel, la photo, la référence article, le type de contrôle. Et ensuite j'ai les fiches outils qui sont rattachés au fiche modèle leur correspondant et la date de buté du prochain contrôle. On y retrouve leur numéro de série, leur position et une case commentaires.

Lorsque qu'on reçoit de nouveau matériels, on doit créer une fiche modèle avant de créer l'outil si jamais on à pas déjà se modèle. Cette partie fonctionne nickel mais lorsque je souhaite créer un outil, le code s'exécute mais rien n'ai inscrit dans ma table. Pourtant j'ai aucun message d'erreur qui s'affiche. Le code est le même que pour la création de fiche modèle, d'où mon incompréhension. 

Voici le code que j'ai pour créer un outil :

Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("Outils",dbOpenDynaset)
rs.FindFirst "[Clé_modèle] = " & Me.Clé_modèle.Value & " AND [SN] = " & Chr(34) & Me.SN.Value & Chr(34)

If rs.NoMatch = False then
MsgBox "Un outil possédant les mêmes références outils et le même SN existe déjà. Vous ne pouvez enregistrer cet outil.", vbOKOnly, "Doublon"
Goto fin:
End if

MsgBox "Outil créer"
DoCmd.Close,,acSaveYes

Fin:

Tout s'exécute sans erreur mais rien n'est rentrée dans ma table. Si quelqu'un à une solution, je suis preneur.

A voir également:

3 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 

bonjour,

Le code ne crée jamais rien, il affiche simplement l'un ou l'autre message.

Je ne comprends ni pourquoi ni comment tu as "coupé" ta base en deux.

0
Tgm45 Messages postés 24 Date d'inscription   Statut Membre Dernière intervention  
 

Quand je dit coupé en deux c'est juste que j'ai une table pour les fiches modèle et une pour les outils. Je me suis mal exprimé.

Tu me dit que sa affiche juste juste un des 2 messages mais sur ma création de fiche modèle, ma ligne se créér bien dans ma table.

0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 

Ce code ne crée certainement pas d'enregistrement dans une table.

0
Tgm45 Messages postés 24 Date d'inscription   Statut Membre Dernière intervention  
 

J'ai fait sa comme code du coup avec se que j'ai trouvé sauf qu'il me met "erreur de compilation : Étiquette non défini" que je ne comprends pas.

Private Sub CmdValider_Click()
 

' On teste si les butées ont toutes été remplies

If ((NbControles > 0 And IsNull(Me.Texte21.Value)) Or (NbControles > 1 And IsNull(Me.Texte22.Value)) Or (NbControles > 2 And IsNull(Me.Texte23.Value)) Or (NbControles > 3 And IsNull(Me.Texte24.Value)) Or (NbControles > 4 And IsNull(Me.Texte25.Value)) Or (NbControles > 5 And IsNull(Me.Texte26.Value)) Or (NbControles > 6 And IsNull(Me.Texte27.Value)) Or (NbControles > 7 And IsNull(Me.Texte28.Value))) Then

    MsgBox "Le renseignement des dates de butées est obligatoire", vbOKOnly, "Erreur de saisie"

    GoTo fin:

End If

 

'On réactualise certaines cases au cas où...

Actualisation_date Controle1, 1, Periode1

Actualisation_date Controle2, 2, Periode2

Actualisation_date Controle3, 3, Periode3

Actualisation_date Controle4, 4, Periode4

Actualisation_date Controle5, 5, Periode5

Actualisation_date Controle6, 6, Periode6

Actualisation_date Controle7, 7, Periode7

Actualisation_date Controle8, 8, Periode8

 

' On fait aussi quelques tests

If IsNull(Me.SN) Or IsNull(Me.Position) Then

    MsgBox "Le renseignement des champs SN et Position est obligatoire", vbOKOnly, "Erreur de saisie"

    GoTo fin:

End If


Dim rs As DAO.Recordset

Dim i As Integer

Set rs = CurrentDb.OpenRecordset("Outils", dbOpenDynaset)


rs.FindFirst "[Clé_modèle] = " & Me.Clé_modèle.Value & " AND [SN] = " & Chr(34) & Me.SN.Value & Chr(34)

If rs.NoMatch = False Then

    MsgBox "Un outil possédant les mêmes références outils et le même SN existe déjà. Vous ne pouvez enregistrer cet outil.", vbOKOnly, "Doublon"

    GoTo fin:

End If


With rs

For i = Me.Clé_modèle.Value To Me.SN.Value

rs.AddNew

rs("Outils").Value = i


rs.Update

Next

End With

MsgBox "Outil créer"

End Sub


fin:
 

End Sub
0
Tgm45 Messages postés 24 Date d'inscription   Statut Membre Dernière intervention  
 

J'ai oublié de préciser qu'il me surligne le premier "Goto fin:"

0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 

Ne vois-tu pas que tu as un "end sub" superflu?

0
Tgm45 Messages postés 24 Date d'inscription   Statut Membre Dernière intervention   > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 

Effectivement, je ne l'avais pas vu merci. Du coup il m'affiche pu l'erreur, le code s'exécute mais même résultat, j'ai rien qui est créer sur ma table.

0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Tgm45 Messages postés 24 Date d'inscription   Statut Membre Dernière intervention  
 

Au lieu de "trouver" du code, il est parfois préférable de se former.

0