bonjour, je demande de l'aide pour alimenter une table d'une base de données access créée en vb6.
D'avance merci.
bonjour, je demande de l'aide pour alimenter une table d'une base de données access créée en vb6.
D'avance merci.
Salut
Tu peux faire une recherche dans le forum VB6 en indiquant "connexion ADO" ), dans la première page il y a pratiquement tous ce qui faut .
Il y a aussi dans la FAQ VB6 la rubrique Bases de données.
On te laisse donc voir les différents liens, essais de nous proposer quelque lignes de code, là on pourra t'aider plus efficacement.
Édit: le l de salut, c'est mieux que Saut
Soyez sympa, pensez -y
Balises[CODE]...[/CODE]
Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
Balises[C]...[/C] code intégré dans une phrase.
Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
👉 → → Ma page perso sur DVP ← ← 👈
Bonjour,
Merci pour les indications.
Je vous donne le code de la création de la table qui marche:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 ' Module de création de la table Sub CreateAccessTable(sDatabaseToCreate) Dim catDB As ADOX.Catalog Dim tblNew As ADOX.table Set catDB = New ADOX.Catalog ' Open the catalog catDB.ActiveConnection = "Provider=Microsoft.ACE.OLEDB.12.0;" & _ "Data Source=" & sDatabaseToCreate Set tblNew = New ADOX.table tblNew.Name = "ResultLog" Dim col As ADOX.Column Set col = New ADOX.Column With col .ParentCatalog = catDB .Type = adInteger ' .Name = "ID" .Properties("Autoincrement") = True .Properties("Description") = "I am the Description " & _ "for the column" End With tblNew.Columns.Append col With tblNew With .Columns .Append "NumberColumn", adInteger .Append "FirstName", adVarWChar .Append "Rdate", adDate .Append "Pati_id", adVarWChar .Append "Result", adDouble End With Dim adColNullable ' adColNullable = 2 With .Columns("FirstName") .Attributes = adColNullable End With End With ' Ajout nouvelle table. catDB.Tables.Append tblNew Set col = Nothing Set tblNew = Nothing Set catDB = Nothing End Sub
' Code faisant l'alimentation de la table
Quand je l'exécute et je vais ouvrir la base de données test (access), les données de la liste ne sont pas prises en compte dans resultlog:
Merci d'avance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 Dim sDatabaseName As String 'fName = txtNew.Text sDatabaseName = "C:\Test.accdb" Dim Cnxn As ADODB.Connection Dim rstResultat As ADODB.Recordset Dim Accesscmd As New ADODB.Command Dim AccessRst As New ADODB.Recordset Dim strCnxn As String Dim strSQL As String Dim nbEnr As Long Dim y As Integer Dim txtnum, txtnom As String Dim db As dao.Database Dim Tb As dao.TableDef Dim Fd As dao.Field 'Connection à la base de données Access Set Cnxn = New ADODB.Connection strCnxn = "Provider=Microsoft.ACE.OLEDB.12.0;" & _ "Data Source=" & MaBase Cnxn.Open strCnxn On Error Resume Next Csv_Rst.Delete NomTable Set rstResultat = New ADODB.Recordset strSQL = "select * from resultlog where pati_id >=0" rstResultat.Open strSQL, strCnxn, adOpenDynamic, adLockOptimistic, adCmdTable MsgBox (rstResultat.RecordCount) If rstResultat.EOF Then MsgBox "Fin de fichier" Else MsgBox "Non fin de fichier" End If y = 1 '*********************************** ' Enregistrement dans la table ResultLog For i = 0 To List_dos.ListCount - 1 rstResultat.AddNew rstResultat!rdate = Left(List_dos.List(i), 10) rstResultat!pati_id = Val(Mid(List_dos.List(i), 22, 10)) rstResultat!numbercolumn = y rstResultat!pati_id = Mid(List_dos.List(i), 22, 10) rstResultat!result = Mid(List_dos.List(i), 37, 10) rstResultat.Update y = y + 1 Next i rstResultat.Close
Salut
Un peu (beaucoup) brouillon ton code d'ajout dans la table, j'ai essayé de nettoyer, cala devrait donner
Comme tu peux le voir, j'ai mis quelque commentaires explicatifs, code non testé, en espérant que tu pourras affiner les éventuels problèmes restant.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 Dim Cnxn As ADODB.Connection Dim rstResultat As ADODB.Recordset Dim sDatabaseName As String sDatabaseName = "C:\Test.accdb" Dim strCnxn strCnxn = "Provider=Microsoft.ACE.OLEDB.12.0;" & _ "Data Source=" & sDatabaseName Set Cnxn = New ADODB.Connection Cnxn.Open strCnxn If Not Cnxn.EOF Then Set rstResultat = New ADODB.Recordset Dim strSQL As String strSQL = "select * from ResultLog where pati_id >=0" ' ***** ATTENTION, j'ai changé le nom de la table, R majuscule *** rstResultat.Open strSQL, Cnxn, adOpenDynamic, adLockOptimistic, adCmdTable If not rstResultat.EOF Then ' Enregistrement dans la table ResultLog Dim y As Integer: y = 1 Dim i As Integer For i = 0 To List_dos.ListCount - 1 rstResultat.AddNew rstResultat!Rdate = Left(List_dos.List(i), 10) '*** la il faut choisir l'une des 2 ligne suivante *** rstResultat!Pati_id = Val(Mid(List_dos.List(i), 22, 10)) rstResultat!pati_id = Mid(List_dos.List(i), 22, 10) rstResultat!NumberColumn = y rstResultat!Result = Mid(List_dos.List(i), 37, 10) '*** tu ne remplis pas le champs FirstName ??? *** rstResultat.Update y = y + 1 Next i rstResultat.Close: Set rstResultat = Nothing Cnxn.Close: Cnxn: Set Cnxn = Nothing Else Cnxn.Close: Cnxn: Set Cnxn = Nothing Msgbox "rstResultat.EOF = True, echec ouverture table ''ResultLog''" End If Else Msgbox "Cnxn.EOF = True, echec ouverture base de données ''C:\Test.accdb''" End If
Soyez sympa, pensez -y
Balises[CODE]...[/CODE]
Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
Balises[C]...[/C] code intégré dans une phrase.
Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
👉 → → Ma page perso sur DVP ← ← 👈
Bonjour,
Je reviens pour le code pour alimenter la table.
Merci pour les indications et encore merci
Après avoir affiner le code et testé, ça marche toujours pas. Il signale une erreur d'utilisation dans la clause FROM. Si vous pouvez le tester pour vous rendre compte.
D'avance merci.
Salut
Tu as déclarer "Pati_id", adVarWChar mais dans ta clause Where tu donnes comme condition un chiffre
Code : Sélectionner tout - Visualiser dans une fenêtre à part strSQL = "select * from ResultLog where pati_id >=0"
Je pense que tu cherches une condition sur le champ ID non pas Pati_id
Donc
ou si cela est bien sur le champ [B]Pati_id[B]
Code : Sélectionner tout - Visualiser dans une fenêtre à part strSQL = "select * from ResultLog where ID >=0"
mais ce champ de type litéral ne peut pas être > (plus grand que) ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part strSQL = "select * from ResultLog where pati_id ='0'"
Soyez sympa, pensez -y
Balises[CODE]...[/CODE]
Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
Balises[C]...[/C] code intégré dans une phrase.
Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
👉 → → Ma page perso sur DVP ← ← 👈
re bonjour,
merci pour la précision.
j'ai essayé avec ID et pati_id mais il ya toujours le même message d'erreur sur la clause FROM.
il n'arrive pas à ouvrir la table.
Merci d'avance.
Soyez sympa, pensez -y
Balises[CODE]...[/CODE]
Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
Balises[C]...[/C] code intégré dans une phrase.
Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
👉 → → Ma page perso sur DVP ← ← 👈
quand j'exécute la procédure, sur la ligne:
cette erreur apparait:
Code : Sélectionner tout - Visualiser dans une fenêtre à part rstResultat.Open strSQL, Cnxn, adOpenDynamic, adLockOptimistic, adCmdTable
erreur d'exécution '-2147217900 (80040e14)':
erreur de syntaxe dans la clause FROM.
Ok
Essais
Code : Sélectionner tout - Visualiser dans une fenêtre à part rstResultat.Open strSQL, Cnxn, adOpenStatic, adLockPessimistic
Soyez sympa, pensez -y
Balises[CODE]...[/CODE]
Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
Balises[C]...[/C] code intégré dans une phrase.
Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
👉 → → Ma page perso sur DVP ← ← 👈
bonjour,
Après l'essai, l'alimentation a été effective.
Merci beaucoup pour votre concours.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager