basamir
Messages postés335Date d'inscriptionvendredi 21 octobre 2005StatutMembreDernière intervention 8 mars 2008
-
28 avril 2007 à 19:53
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 2016
-
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
A voir également:
Modifier un enregistrement dans une table access vba
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 201615 28 avril 2007 à 22:37
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]
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 201615 28 avril 2007 à 20:43
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) ?
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 201615 28 avril 2007 à 20:54
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 ?
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 201615 28 avril 2007 à 21:21
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..
basamir
Messages postés335Date d'inscriptionvendredi 21 octobre 2005StatutMembreDernière intervention 8 mars 2008 28 avril 2007 à 21:35
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?
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 201615 28 avril 2007 à 21:41
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...
basamir
Messages postés335Date d'inscriptionvendredi 21 octobre 2005StatutMembreDernière intervention 8 mars 2008 28 avril 2007 à 22:14
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
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.