Bonjour, j'ai un prog sous VB qui tape dans une base de donnée access. Le problème c'est que j'aimerais bien y écrire et y faire des modifications dans cette base a partir du prog VB. Quel est la commande a utilisé? Merci d'avance
Version imprimable
Bonjour, j'ai un prog sous VB qui tape dans une base de donnée access. Le problème c'est que j'aimerais bien y écrire et y faire des modifications dans cette base a partir du prog VB. Quel est la commande a utilisé? Merci d'avance
Il faut utiliser ms-ADO je suis sur qu'il ya un tuto la dessus.
Sinon l'objet datagrid mais il manque de souplesse
Salut,
Voila un petit bout de code que j'ai fait il y a un petit bout de temps, mais je pense qu'il peut t'aider...tu trouveras comment ecrire, lire et supprimer des infos dans une base access.
Sébastien
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181 '=========================== '===inventaire de la base=== '=========================== Private Sub NumAfficher_Click(Index As Integer) Dim db As Database Dim rs As Recordset Dim sql As String Dim nbrinfo As Integer List1.Clear Set db = OpenDatabase(App.Path & "\BDD_97.mdb") sql = "select * from Table1" Set rs = db.OpenRecordset(sql, dbOpenSnapshot) 'init du cumul nbrinfo = 0 'si pas d'info dans la base If rs.EOF = False Then rs.MoveFirst Do While rs.EOF = False List1.AddItem "Dossier : " & rs.Fields("Dossier") & " " & "Nom : " & rs.Fields("Nom") & " " & "Prénom : " & rs.Fields("Prenom") nbrinfo = nbrinfo + 1 rs.MoveNext Loop Else MsgBox "Pas d'information dans la Base", vbCritical, "Attention" Exit Sub End If 'Une fois les valeurs définies, on met à jour rs.Close db.Close End Sub '========================= '===Creation de la base=== '========================= Private Sub NumAjouter_Click(Index As Integer) Dim db As Database Dim rs As Recordset Dim sql As String Set db = OpenDatabase(App.Path & "\BDD_97.mdb") 'On séléctionne tous les champs de la table sql = "select * from Table1" 'on est bien en mode écriture (dbOpenDynaset) Set rs = db.OpenRecordset(sql, dbOpenDynaset) 'Pour ajouter un enregistrement rs.AddNew If TxtNom.Text = "" Or TxtPrenom.Text = "" Or TxtAge.Text = "" Or TxtSexe.Text = "" Or TxtPrelevement.Text = "" Then MsgBox "Champs Imcomplet", vbCritical, "Attention" Exit Sub End If rs.Fields("Nom") = TxtNom.Text rs.Fields("Prenom") = TxtPrenom.Text rs.Fields("Age") = TxtAge.Text rs.Fields("Sexe") = TxtSexe.Text rs.Fields("Dossier") = TxtNumDossier.Text rs.Fields("Hopital") = ChkHopital.Value rs.Fields("Faculte") = ChkFaculte.Value rs.Fields("Prelevement") = TxtPrelevement.Text If ChkHopital.Value = 1 Then rs.Fields("Hopital_Frigo") = TxtHFrigo.Text rs.Fields("Hopital_Congel") = TxtHCongel.Text rs.Fields("Hopital_Tiroir") = TxtHtiroir.Text rs.Fields("Fac_Chambre") = " " rs.Fields("Fac_Congel") = " " rs.Fields("Fac_Tiroir") = " " If ChkHopital.Value = 1 And (TxtHFrigo.Text = "" And TxtHCongel.Text = "" And TxtHtiroir.Text = "") Then MsgBox "Champ vide Hopital", vbCritical, "Attention" Exit Sub End If End If If ChkFaculte.Value = 1 Then rs.Fields("Fac_Chambre") = TxtFChambre.Text rs.Fields("Fac_Congel") = TxtFCongel.Text rs.Fields("Fac_Tiroir") = TxtFTiroir.Text rs.Fields("Hopital_Frigo") = " " rs.Fields("Hopital_Congel") = " " rs.Fields("Hopital_Tiroir") = " " If ChkFaculte.Value = 1 And (TxtFChambre.Text = "" Or TxtFCongel.Text = "" Or TxtFTiroir.Text = "") Then MsgBox "Champ vide Faculté", vbCritical, "Attention" Exit Sub End If End If 'Une fois les valeurs définies, on met à jour rs.Update rs.Close MsgBox "Création de la Base Réussie", vbInformation, "Enregistrement..." End Sub '======================== '===Lecture de la base=== '======================== Private Sub numRecherhcer_Click(Index As Integer) Dim db As Database Dim rs As Recordset Dim sql As String Set db = OpenDatabase(App.Path & "\BDD_97.mdb") 'On séléctionne tous les champs de la table sql = "select * from Table1" 'Remarqué la présence de ' obligatoire pour le bon fonctionnemnt sql = "select * from Table1 where Nom='" & TxtNom.Text & "' " Set rs = db.OpenRecordset(sql, dbOpenSnapshot) 'Verification si information est dans la base If rs.EOF = False Then TxtNom.Text = rs.Fields("Nom") TxtPrenom.Text = rs.Fields("Prenom") TxtAge.Text = rs.Fields("Age") TxtSexe.Text = rs.Fields("Sexe") TxtNumDossier.Text = rs.Fields("Dossier") TxtPrelevement.Text = rs.Fields("Prelevement") Else MsgBox "Pas d'information dans la Base", vbCritical, "Attention" Exit Sub End If 'dbOpenSnapshot à la place du dbOpenDynaset en mode "écriture" sql = "select * from Table1 where Nom='" & TxtNom.Text & "' and Age='" & TxtAge & "' " Set rs = db.OpenRecordset(sql, dbOpenSnapshot) TxtNom.Text = rs.Fields("Nom") TxtPrenom.Text = rs.Fields("Prenom") TxtAge.Text = rs.Fields("Age") TxtSexe.Text = rs.Fields("Sexe") TxtNumDossier.Text = rs.Fields("Dossier") TxtPrelevement.Text = rs.Fields("Prelevement") MsgBox "Chargement des Valeurs Réussi", vbInformation, "Chargement..." 'Une fois les valeurs définies, on met à jour rs.Close End Sub '========================== '===Supprimer de la base=== '========================== Private Sub NumSupprimer_Click(Index As Integer) Dim db As Database Dim rs As Recordset Dim sql As String Set db = OpenDatabase(App.Path & "\BDD_97.mdb") 'selection de l'enregistrement sql = "select * from Table1 where Nom='" & TxtNom.Text & "' " Set rs = db.OpenRecordset(sql, dbOpenDynaset) 'suppresion de l'enregistrement rs.Delete MsgBox "Suppression Réussie", vbInformation, "Effacement..." End Sub
Il y' a des tutoriels sur le site, très bien fait, pour ça.Citation:
Envoyé par dje06200
ouCode:base.execute"insert into ...."
Code:base.execute "update maTable..."
Il existe aussi les concepteurs activeX qui sont très simples à utiliser et assez performants ;)
Hello,
n'hésite pas non plus à utiliser DAO qui est optimisé pour les bases Access / Moteur JET.