mick1819
Messages postés24Date d'inscriptionmercredi 21 janvier 2004StatutMembreDernière intervention26 avril 2005
-
30 mars 2005 à 14:01
mick1819
Messages postés24Date d'inscriptionmercredi 21 janvier 2004StatutMembreDernière intervention26 avril 2005
-
30 mars 2005 à 14:33
Bonjour
J'ai fait un menu de recherche pour parcourir la base de donnée de manière simplifiée... j'aimerai modifier les données, mais je n'arrive pas a les mettre a jour dans ma base ...
Voila mon code :
Public ChainePublicRechercheVisu As String
Public IntPublicRechercheVisu As Integer
Dim rst As New ADODB.Recordset
Dim passage As Integer
Dim passageEOFBOF As Integer
Public Function lecture_base(position As Integer)
Dim cnn As New ADODB.Connection
Dim fld As ADODB.Field
Dim cpt As Integer
Dim clause_where As String
On Error Resume Next
clause_where = ChainePublicRechercheVisu
'***Ouverture de la connection***
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Data Source=" & "C:\Documents and Settings\tsilomi1\Desktop\Toner\Toner.mdb;"
'***Ouverture du recordset si il n'est pas encore ouvert
If passage = 0 Then
rst.Open "SELECT Type, Marque, Compatibilite, Serie, Couleur, Remarque, Quantite, QuantiteMin FROM TONER where " & clause_where, _
cnn, adOpenDynamic, adLockReadOnly
rst.MoveFirst
passage = 1
End If
cpt = 0
rst.Move (position)
'***Affichage des données dans les textbox appropriés
For Each fld In rst.Fields
If cpt = 0 Then
txtType.Text = fld.Value & " "
End If
If cpt = 1 Then
txtMarque.Text = fld.Value & " "
End If
If cpt = 2 Then
txtCompatibilite.Text = fld.Value & " "
End If
If cpt = 3 Then
txtSerie.Text = fld.Value & " "
End If
If cpt = 4 Then
txtCouleur.Text = fld.Value & " "
End If
If cpt = 5 Then
txtRemarque.Text = fld.Value & " "
End If
If cpt = 6 Then
txtQuantite.Text = fld.Value & " "
End If
If cpt = 7 Then
txtQuantiteMin.Text = fld.Value & " "
End If
jpleroisse
Messages postés1788Date d'inscriptionmardi 7 novembre 2000StatutMembreDernière intervention11 mars 200627 30 mars 2005 à 14:21
Rst.update n' a pas à se trouver dans cette procédure qui de toutes façons n'enregistre rien, elle ne fait que blocquer les textbox et les boutons de commande.
Dans une commande d'enregistrement Update est toujours précédé de AddNew ou Edit
et apparement ton code ne fait que récupérer des données dans des textBox.
Je vais essayer de créer une base et copier ton code pour voir comment faire.
mick1819
Messages postés24Date d'inscriptionmercredi 21 janvier 2004StatutMembreDernière intervention26 avril 2005 30 mars 2005 à 14:33
Mais en fait j'ai fait un menu de recherche
quand tu arrive dessus tu peu entrer les données à rechercher dans des textbox
ensuite il charge une form avec le code que j'ai mis ci-dessus ... et il affiche les données dans des textbox !!! tout fonctionne sauf l'enregistrement des données qui ont été modifiées...
Si ca peut t'aider voila le code de ma form précédente : (les chType, ... sont des checkbox)
Private Sub buRechercher_Click()
Dim cnn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim fld As ADODB.Field
Dim clause_where As String
Dim OK As Integer
Dim passage As Integer
Dim nb_trouver As Integer
Dim rep As Integer
'***Ecriture de la clause where en fonction des choix de l'opérateur
If chType.Value = 1 Then
clause_where = "Type LIKE'%" & txtType & "%'"
passage = 1
End If
If chType.Value 1 And txtType.Text "" Then
MsgBox "Vous avez mal formulé votre recherche", vbExclamation, "Erreur"
chMarque.Value = 0
chType.Value = 0
chRemarque.Value = 0
chCouleur.Value = 0
chSerie.Value = 0
chCompatibilite.Value = 0
GoTo FIN
End If
If chMarque.Value = 1 Then
clause_where = "Marque LIKE'%" & txtMarque & "%'"
passage = 1
End If
If chMarque.Value 1 And passage 0 Then
clause_where = clause_where & "Marque LIKE'%" & txtMarque & "%'"
passage = 1
End If
If chMarque.Value 1 And txtMarque.Text "" Then
MsgBox "Vous avez mal formulé votre recherche", vbExclamation, "Erreur"
chMarque.Value = 0
chType.Value = 0
chRemarque.Value = 0
chCouleur.Value = 0
chSerie.Value = 0
chCompatibilite.Value = 0
GoTo FIN
End If
If chCompatibilite.Value 1 And passage 1 Then
clause_where = clause_where & " AND "
clause_where = clause_where & "Compatibilite LIKE'%" & txtCompatibilite & "%'"
End If
If chCompatibilite.Value 1 And passage 0 Then
clause_where = clause_where & "Compatibilite LIKE'%" & txtCompatibilite & "%'"
passage = 1
End If
If chCompatibilite.Value 1 And txtCompatibilite.Text "" Then
MsgBox "Vous avez mal formulé votre recherche", vbExclamation, "Erreur"
chMarque.Value = 0
chType.Value = 0
chRemarque.Value = 0
chCouleur.Value = 0
chSerie.Value = 0
chCompatibilite.Value = 0
GoTo FIN
End If
If chSerie.Value 1 And passage 1 Then
clause_where = clause_where & " AND "
clause_where = clause_where & "Serie='" & txtN° & "'"
End If
If chSerie.Value 1 And passage 0 Then
clause_where = "Serie='" & txtSerie & "'"
passage = 1
End If
If chSerie.Value 1 And txtSerie.Text "" Then
MsgBox "Vous avez mal formulé votre recherche", vbExclamation, "Erreur"
chMarque.Value = 0
chType.Value = 0
chRemarque.Value = 0
chCouleur.Value = 0
chSerie.Value = 0
chCompatibilite.Value = 0
GoTo FIN
End If
If chCouleur.Value 1 And passage 1 Then
clause_where = clause_where & " AND "
clause_where = "Couleur LIKE'%" & txtCouleur & "%'"
End If
If chCouleur.Value 1 And passage 0 Then
clause_where = "Couleur LIKE'%" & txtCouleur & "%'"
passage = 1
End If
If chCouleur.Value 1 And txtCouleur.Text "" Then
MsgBox "Vous avez mal formulé votre recherche", vbExclamation, "Erreur"
chMarque.Value = 0
chType.Value = 0
chRemarque.Value = 0
chCouleur.Value = 0
chSerie.Value = 0
chCompatibilite.Value = 0
GoTo FIN
End If
If chRemarque.Value 1 And passage 1 Then
clause_where = clause_where & " AND "
clause_where = clause_where & "Remarque LIKE'%" & txtRemarque & "%'"
End If
If chRemarque.Value 1 And passage 0 Then
clause_where = clause_where & "Remarque LIKE'%" & txtRemarque & "%'"
passage = 1
End If
If chRemarque.Value 1 And txtRemarque.Text "" Then
MsgBox "Vous avez mal formulé votre recherche", vbExclamation, "Erreur"
chMarque.Value = 0
chType.Value = 0
chRemarque.Value = 0
chCouleur.Value = 0
chSerie.Value = 0
chCompatibilite.Value = 0
GoTo FIN
End If
If chQuantite.Value 1 And passage 1 Then
clause_where = clause_where & " AND "
clause_where = clause_where & "Quantite LIKE'%" & txtQuantite & "%'"
End If
If chQuantite.Value 1 And passage 0 Then
clause_where = clause_where & "Quantite LIKE'%" & txtQuantite & "%'"
passage = 1
End If
If chQuantiteMin.Value 1 And passage 1 Then
clause_where = clause_where & " AND "
clause_where = clause_where & "QuantiteMin LIKE'%" & txtQuantiteMin & "%'"
End If
If chQuantiteMin.Value 1 And passage 0 Then
clause_where = clause_where & " QuantiteMin LIKE'%" & txtQuantiteMin & "%'"
passage = 1
End If
If chID.Value 1 And passage 1 Then
clause_where = clause_where & " AND "
clause_where = clause_where & "ID LIKE'%" & txtID & "%'"
End If
If chID.Value 1 And passage 0 Then
clause_where = clause_where & " QuantiteMin LIKE'%" & txtID & "%'"
passage = 1
End If
If passage = 0 Then
rep = MsgBox("Vous avez mal formulé votre recherche", vbOKOnly + vbExclamation, "Erreur...")
'***Ouverture de la connection***
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Data Source=" & "C:\Documents and Settings\tsilomi1\Desktop\Toner\Toner.mdb;"
'***On regarde si la requete retourne un résultat***
rst.Open "SELECT ID, Type, Marque, Compatibilite, Serie, Couleur, Remarque, Quantite, QuantiteMin FROM TONER where " & clause_where, _
cnn, adOpenForwardOnly, adLockReadOnly
Do Until rst.EOF
For Each fld In rst.Fields
OK = 1 'Si on trouve un resultat on montre le resultat
Next
rst.MoveNext
nb_trouver = nb_trouver + 1 'nb_trouver=nombre de films trouver
Loop
'********************************
rst.Close
cnn.Close
If OK = 1 Then
fmRechercherVisualisation.ChainePublicRechercheVisu = clause_where
fmRechercherVisualisation.IntPublicRechercheVisu = nb_trouver
fmRechercherVisualisation.Show
fmRechercher.Hide
Else
rep = MsgBox("Aucun résulatat trouvé", vbOKOnly + vbExclamation, "Aucun résultat")
End If
FIN:
End Sub
Private Sub buRetour_Click()
fmRechercher.Visible = False
fmMain.Visible = True
Je voulai faire plus simple en mettant directement le composant ADO mais je ne sais pas comment faire des recherches avec ca .... si tu le sais ca m'aiderai énormément