Enregistrement dans une table ACCESS [Résolu]

basamir 335 Messages postés vendredi 21 octobre 2005Date d'inscription 8 mars 2008 Dernière intervention - 28 avril 2007 à 19:53 - Dernière réponse : cs_Exploreur 4824 Messages postés lundi 11 novembre 2002Date d'inscription 15 novembre 2016 Dernière intervention
- 29 avril 2007 à 19:01
bonjour,

je me penche vers vous , encore une fois, pour résoudre un problème qui peut vous paraitre stupide 'comme tous mes messages'
j'ai une Form composée de 10 textbox "text1(0) à text1(10)"
avec un bouton je dois enregistrer ces textbox dans ma table ACCESS, pour celà j'ai pensé à un boucle comme ceci:
For i=0 to 10
enr(i) = text1(i).text
oRS.AddNew
     oRS.Fields("le nom de mon champ") = enr(i)
next

mais je ne s   ais pas comment faire si bien évidemment celà est faisable.

Merci
Afficher la suite 

Votre réponse

12 réponses

Meilleure réponse
cs_Exploreur 4824 Messages postés lundi 11 novembre 2002Date d'inscription 15 novembre 2016 Dernière intervention - 28 avril 2007 à 22:37
3
Merci
Salut,

C'est normal, tu ne fait une requête de selection mais une requête action(modification)..
Pour trouver un client ta requête de ressembler à cela :
sQuery "SELECT * From TaTable Where N°client '" & Text1(0).Text & "'"
RstAdo.Open sQuery, TACONNECTIONADO, adOpenDynamic, adLockPessimistic

Ta requête va te renvois le bon client choisi par ton utilisateur, tu n'as plus qu'à l'afficher...Regarde ci-dessous un code de Chaibat05 que j'utilise dans une de mes source, et essaye de comprendre le truc et de modifier à ta convenance :

 With RstAdo
     ' Pour éviter l' erreur du mouvement
      On Error Resume Next
     
         .MoveLast
         .MoveFirst
      If .BOF And .EOF Then
     
        ' Erreur
         MessageBox Me.hwnd, "Veuillez vérifier votre pseudo !", "Erreur pseudo...", vbExclamation Or vbOKOnly
         Txt_pseudo.SetFocus
         .Close
         Exit Sub
        
      End If
     
    ' >suite vérife
         If ![Code] = Txt_code.Text Then
        
           ' Attribution Nom et Prénom à mes variable
            Var_Nom = ![Nom]
            Var_Prénom = ![Prénom]
            Var_Droits = ![Droits]
            Var_Pseudo = ![Pseudo]
           
           ' Préparation du message boite de dialogue
           Msg = "Bonjour " & Var_Nom & " " & Var_Prénom & vbCrLf & vbCrLf & _
                 "Nous sommes le " & StrConv(Format(Now, "dddd dd mmmm yyyy"), vbProperCase) & vbCrLf & vbCrLf & _
                 "Bonne journée !" & vbCrLf & vbCrLf
          
           ' Affichage boite de dialogue
            MessageBox Me.hwnd, Msg, "Validation utilisateur", vbInformation Or vbOKOnly
           
           ' Ferme le recordset
            .Close
           
           ' Unload
            Unload Me
           
         Else
         
           ' Erreur
            MessageBox Me.hwnd, "Veuillez vérifier votre code !", "Erreur code...", vbExclamation Or vbOKOnly
            Txt_code.SetFocus
            .Close
            Exit Sub
         End If
     
     End With

A+
Exploreur

 

Merci cs_Exploreur 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de cs_Exploreur
cs_Exploreur 4824 Messages postés lundi 11 novembre 2002Date d'inscription 15 novembre 2016 Dernière intervention - 28 avril 2007 à 20:43
0
Merci
Salut Basamir,

De retour ? Je sens que l'on va repartir dans une discussion un peu longue...Au cas on verra par MP pour trouver la bonne et la poster...Ainsi on évitera(du moins pour moi), des postes...Mais avant de continuer, tu as laissé tonmber les requêtes Sql, ou cela fonctionne(ton dernier post avec Chaibat05) ? 

A+
Exploreur

 
Commenter la réponse de cs_Exploreur
cs_Exploreur 4824 Messages postés lundi 11 novembre 2002Date d'inscription 15 novembre 2016 Dernière intervention - 28 avril 2007 à 20:54
0
Merci
Salut,

Petite précision : Textbox(0) à TextBox(10), cela fait 11 TextBox, non? Parce que pour avoir 10 TextBox :  Textbox(0) à TextBox(9)...Alors tu en as 10 ou 11 ?

A+
Exploreur

 
Commenter la réponse de cs_Exploreur
basamir 335 Messages postés vendredi 21 octobre 2005Date d'inscription 8 mars 2008 Dernière intervention - 28 avril 2007 à 20:57
0
Merci
Pardon 11

Avec Chaibat on a résolu le pb

Merci pour la précision
Commenter la réponse de basamir
cs_Exploreur 4824 Messages postés lundi 11 novembre 2002Date d'inscription 15 novembre 2016 Dernière intervention - 28 avril 2007 à 20:59
0
Merci
Salut,

Essaye cette requette, maintenant que tu es familiarisé avec le Recordset...Je suis partit du fait que tu avais 11 TextBox...

' Préparation Requête
                  
                    Dim Sql As String
                   
                    Sql = "UPDATE TaTable " & _                           "SET TonChamp1 '" & Txt_détails(0).Text & "' , TonChamp2 '" & Txt_détails(1).Text & "'," & _                           "TonChamp3 '" & Txt_détails(2).Text & "', TonChamp4 '" & Txt_détails(3).Text & "'," & _                           "TonChamp5 '" & Txt_détails(4).Text & "', TonChamp6 '" & Txt_détails(5).Text & "'," & _                           "TonChamp7 '" & Txt_détails(6).Text & "', TonChamp8 '" & Txt_détails(7).Text & "'," & _                           "TonChamp9 '" & Txt_détails(8).Text & "', TonChamp10 '" & Txt_détails(9).Text & "'," & _
                           "TonChamp11 = '" & Txt_détails(10).Text & "';"
                          
                          
                    RstAdo.Open Sql, TACONNECTIONADO, adOpenDynamic, adLockPessimistic

A+
Exploreur

 
Commenter la réponse de cs_Exploreur
basamir 335 Messages postés vendredi 21 octobre 2005Date d'inscription 8 mars 2008 Dernière intervention - 28 avril 2007 à 21:16
0
Merci
Merci mais je voulais passer par une boucle merci pour l'aide
Commenter la réponse de basamir
cs_Exploreur 4824 Messages postés lundi 11 novembre 2002Date d'inscription 15 novembre 2016 Dernière intervention - 28 avril 2007 à 21:21
0
Merci
Salut,

Pourquoi veux-tu impérativement passé par une boucle ? Il faut que tu m'explique !

Ton prog même si c'est minime en temps, va faire sa boucle 10 fois, tandis que la requete le fait en une seule fois ! il y a là quelque chose que je pige pas..

A+
Exploreur

 
Commenter la réponse de cs_Exploreur
basamir 335 Messages postés vendredi 21 octobre 2005Date d'inscription 8 mars 2008 Dernière intervention - 28 avril 2007 à 21:35
0
Merci
en fait c'est une façon de ne pas alourdir le code ni plus ni moins car moi ce que j'ai fait:
     oRS.Fields(Text1(3).DataField) = enr3
     oRS.Fields(Text1(4).DataField) = enr4
     oRS.Fields(Text1(5).DataField) = enr5
     oRS.Fields(Text1(6).DataField) = enr6
     oRS.Fields(Text1(7).DataField) = enr7
     oRS.Fields(Text1(8).DataField) = enr8
     oRS.Fields(Text1(9).DataField) = enr9
     oRS.Fields(Text1(10).DataField) = enr10

Ect..........

sinon j'ai une autre question si tu veux, comment peut on faire pour faire une recherche d'un enregistrement juste en tapant la valeur d'un champ?

Merci
Commenter la réponse de basamir
cs_Exploreur 4824 Messages postés lundi 11 novembre 2002Date d'inscription 15 novembre 2016 Dernière intervention - 28 avril 2007 à 21:41
0
Merci
Salut,
En mettant dans la requête la clause : WHERE Tonchamp '" & Text1.Text "' , ou dans le cas d'une variable : WHERE Tonchamp " & VAR & "  de type String, et numérique.

Par contre, peut-être que niveau code tu l'alourdi pas avec une boucle, mais tu "gaspilles" du temps...

As-tu essayé la requête ?
A+
Exploreur

 
Commenter la réponse de cs_Exploreur
basamir 335 Messages postés vendredi 21 octobre 2005Date d'inscription 8 mars 2008 Dernière intervention - 28 avril 2007 à 22:14
0
Merci
oui j'ai essayé ta requête et ça marche je te remercie

pour la recherche, voici comment j'ai fait :
un bouton qui ouvre une frome où tu peux saisir le N°Client "champ de recherche"
dans cette forme je lance la recherche comme suit:
--------------------------------------------------------------
Private Sub ok_recherche_Click()
Dim bingoo As Boolean
Dim enr0, enr1, enr2, enr3, enr4, enr5, enr6, enr7, enr8, enr9, enr10 As String
On Error GoTo Err_Update

' Chemin complet et nom de la base
strDB = "C:\Comerço V1.0.1\comerço.mdb"
' Nom de la table
strTable = "Client"
 
' Ouverture connexion vers la base
Set oConn = New ADODB.Connection
oConn.Provider = "Microsoft.Jet.OLEDB.4.0"
oConn.Open strDB
 
' Ouverture recordset sur la table
Set oRS = New ADODB.Recordset
oRS.CursorLocation = adUseClient
oRS.Open strTable, oConn, adOpenDynamic, adLockOptimistic, adCmdTable

Do While oRS.EOF = False
If oRS.Fields("N°client") = Text1.Text Then
bingoo = True
enr0 = oRS.Fields(Client.Text1(0).DataField)
enr1 = oRS.Fields("Nom")
enr2 = oRS.Fields("Contact")
enr3 = oRS.Fields(Client.Text1(3).DataField)
enr4 = oRS.Fields(Client.Text1(4).DataField)
enr5 = oRS.Fields(Client.Text1(5).DataField)
enr6 = oRS.Fields(Client.Text1(6).DataField)
enr7 = oRS.Fields(Client.Text1(7).DataField)
enr8 = oRS.Fields(Client.Text1(8).DataField)
enr9 = oRS.Fields(Client.Text1(9).DataField)
enr10 = oRS.Fields(Client.Text1(10).DataField)
End If
oRS.MoveNext
Loop
If bingoo = True Then
    Client.Text1(0).Text = enr0
    Client.Text1(1).Text = enr1
    Client.Text1(2).Text = enr2
    Client.Text1(3).Text = enr3

    Client.Text1(4).Text = enr4

    Client.Text1(5).Text = enr5
    Client.Text1(6).Text = enr6

    Client.Text1(7).Text = enr7

    Client.Text1(8).Text = enr8
    Client.Text1(9).Text = enr9


    Client.Text1(10).Text = enr10
Unload Me
Else
MsgBox ("Le client recherché n'existe pas!")
Text1.Text = ""
Text1.SetFocus
     End If
'Dim sQuery As String'sQuery "Update Client Set Nom '" & enr1 & "', Contact='" & enr2 & "' Where N°client = '" & Text1(0).Text & "'"

'oConn.Execute sQuery

'Adodc1.Refresh
'actualiser.CausesValidation = True

Exit Sub
Err_Update:
MsgBox Err.Description
'Adodc1.Refresh
'modifier.CausesValidation = True
Unload Me
End Sub
------------------------------------------------------

mais avec ce code au lieu d'afficher l'enregistrement en question, il modifie l'enregistrement affiché lors du lancement de la requête de recherche.
Commenter la réponse de basamir
basamir 335 Messages postés vendredi 21 octobre 2005Date d'inscription 8 mars 2008 Dernière intervention - 29 avril 2007 à 18:54
0
Merci
Merci bcp [auteurdetail.aspx?ID=17710 Exploreur]
Commenter la réponse de basamir
cs_Exploreur 4824 Messages postés lundi 11 novembre 2002Date d'inscription 15 novembre 2016 Dernière intervention - 29 avril 2007 à 19:01
0
Merci
Salut Basamir,

De rien et bon week-end...

A+
Exploreur

 
Commenter la réponse de cs_Exploreur

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.