cs_petchy
Messages postés710Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention19 mai 2015
-
11 déc. 2006 à 22:04
bricoyeye
Messages postés326Date d'inscriptionvendredi 15 avril 2005StatutMembreDernière intervention29 avril 2008
-
12 déc. 2006 à 11:49
Bonsoir
j'ai encore un soucis avec ma base
dans ma table j'ai 2 champs
plats prix
A
B
C
D
dans ma form j'ai 4 labels
13,14,15,16.
est possible quand je click sur un bouton,les données qui se trouve dans les labels
se place dans le champs "prix" en face des plats
label 13 [prix] =[plats] A
label 14 [prix] =[plats] B
label 15 [prix] =[plats] C
label 16 [prix] =[plats] D
merci
@plus
petchy
bricoyeye
Messages postés326Date d'inscriptionvendredi 15 avril 2005StatutMembreDernière intervention29 avril 20082 12 déc. 2006 à 09:04
Salut,
Il faut fermer ton recordset avant
Private Sub Label1_Click()
tb.Close 'Si tu ne l'as pas fait avant
tb.Open "SELECT * FROM [TATABLE] WHERE [plat] like '%" & Replace(Label1.Caption, "'", "''") & "%' ", bd, adOpenKeyset, adLockBatchOptimistic
Label2.Caption = tb!prix
End Sub
Maintenant, dans un label, tu ne peux pas rentrer du texte, il te faut des textbox.
Donc tu fais 4 labels avec le même Nom et tu les index de 1 à 4
Tu fais 4 textBox avec le même Nom et tu les index aussi de 1 à 4
Private Sub Form_Load()
On Error Resume Next
bd.Provider = "microsoft.jet.oledb.4.0"
bd.ConnectionString = App.Path & "\TABASE.mdb" 'chemin et nom de ta base
bd.Open
tb.Open "select * from TATABLE", bd, adOpenDynamic, adLockOptimistic
tb.MoveFirst
For i = 1 To 4
Label(i).Caption = tb!plat
Text(i).Text = tb!prix
tb.MoveNext
Next i
tb.Close
End Sub
'Pour enregistrer tu mets un boutton
Private Sub Command1_Click()
On Error Resume Next
tb.Open "select * from table1", bd, adOpenDynamic, adLockOptimistic
tb.MoveFirst
For i = 1 To 4
tb!prix = Text(i).Text
tb.Update
tb.MoveNext
Next i
tb.Close
End Sub
cs_petchy
Messages postés710Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention19 mai 20154 12 déc. 2006 à 07:17
salut
en fait le champ "plats" est déja rempli manuellement car ça sa ne chande pas,c'est les prix qui changeront ,je que je voudrais c'est envoyé
les données des labels dans les "cases" appopriée,c'est à dire :
label 13 [prix] =[plats] A
label 14 [prix] =[plats] B
label 15 [prix] =[plats] C
label 16 [prix] =[plats] D
merci
petchy
bricoyeye
Messages postés326Date d'inscriptionvendredi 15 avril 2005StatutMembreDernière intervention29 avril 20082 12 déc. 2006 à 07:59
Private Sub Label1_Click()
tb.Open "SELECT * FROM [TATABLE] WHERE [plat] like '%" & Replace(Label1.Caption, "'", "''") & "%' ", bd, adOpenKeyset, adLockBatchOptimistic
Label2.Caption = tb!prix
End Sub
cs_petchy
Messages postés710Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention19 mai 20154 12 déc. 2006 à 08:37
merci Bricoyeye
mais il me met une erreur "cette opération n'est pas autorisé si l'objet est déja ouvert"
c'est possible de mettre se code dans un bouton,comme ça quand je valide il envoi les donnéees dans la table.
petchy
bricoyeye
Messages postés326Date d'inscriptionvendredi 15 avril 2005StatutMembreDernière intervention29 avril 20082 12 déc. 2006 à 11:49
Salut, heurex que çà te plaise.
Mais j'aurrais quand même avec un listView!!
Option Explicit
Dim bd As New ADODB.Connection
Dim tb As New ADODB.Recordset
Public cmdado As New ADODB.Command
Private Sub Command1_Click() 'pour un update
On Error Resume Next
tb!prix = Text1.Text
tb.Update
End Sub
Private Sub Form_Load()
On Error Resume Next
bd.Provider = "microsoft.jet.oledb.4.0"
bd.ConnectionString = App.Path & "\bd4.mdb"
bd.Open
tb.Open "select * from table1", bd, adOpenDynamic, adLockOptimistic
Call load_list 'remplis la list
End Sub
Private Sub load_list()
Dim LstItem As ListItem
ListView1.ListItems.Clear
cmdado.CommandText = "select * from Table1"
tb.Requery
On Error Resume Next
While (Not tb.EOF)
If (tb.RecordCount <> 0) Then
Set LstItem = ListView1.ListItems.Add(, , CStr(tb!PLAT) + " " + "prix: " + CStr(tb!prix)) 'affiche
End If
tb.MoveNext
Wend
End Sub
Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem) 'pour le choix
Dim IndexItem As Long
On Error Resume Next
tb.MoveFirst
IndexItem = Item.Index
tb.Move (IndexItem - 1)
Text1.Text = tb!prix 'affiche le prix dans ton textBox pour le modifier
On Error Resume Next
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) 'pour fermer quand tu t'en va!!
bd.Close
tb.Close
End Sub