IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

alimenter une table d'une base de données access


Sujet :

VB 6 et antérieur

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2017
    Messages : 8
    Points : 4
    Points
    4
    Par défaut alimenter une table d'une base de données access
    bonjour, je demande de l'aide pour alimenter une table d'une base de données access créée en vb6.
    D'avance merci.

  2. #2
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 170
    Points
    17 170
    Par défaut
    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 ← ← 👈

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2017
    Messages : 8
    Points : 4
    Points
    4
    Par défaut alimenter une table d'une base de données access en vb6
    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:


    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
    Merci d'avance.

  4. #4
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 170
    Points
    17 170
    Par défaut
    Salut

    Un peu (beaucoup) brouillon ton code d'ajout dans la table, j'ai essayé de nettoyer, cala devrait donner
    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
    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.
    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 ← ← 👈

  5. #5
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2017
    Messages : 8
    Points : 4
    Points
    4
    Par défaut alimenter une table d'une base de données access en vb6
    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.

  6. #6
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 170
    Points
    17 170
    Par défaut
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strSQL = "select * from ResultLog where ID >=0"
    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 pati_id ='0'"
    mais ce champ de type litéral ne peut pas être > (plus grand que) ...
    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 ← ← 👈

  7. #7
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2017
    Messages : 8
    Points : 4
    Points
    4
    Par défaut alimenter une table d'une base de données access en vb6
    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.

  8. #8
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 170
    Points
    17 170
    Par défaut
    Citation Envoyé par tiendre Voir le message
    re bonjour,
    ....
    il ya toujours le même message d'erreur sur la clause FROM.
    ....
    Merci d'avance.
    Quel message d'erreur ? (N° et message exacte de l'erreur)
    Fais un copier/coller de toute la procédure (Sub) ou se produit l'erreur, n° de la ligne ou se produit l'erreur.
    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 ← ← 👈

  9. #9
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2017
    Messages : 8
    Points : 4
    Points
    4
    Par défaut alimenter une table d'une base de données access en vb6
    quand j'exécute la procédure, sur la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rstResultat.Open strSQL, Cnxn, adOpenDynamic, adLockOptimistic, adCmdTable
    cette erreur apparait:
    erreur d'exécution '-2147217900 (80040e14)':

    erreur de syntaxe dans la clause FROM.

  10. #10
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 170
    Points
    17 170
    Par défaut
    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 ← ← 👈

  11. #11
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2017
    Messages : 8
    Points : 4
    Points
    4
    Par défaut alimenter une table d'une base de données access en vb6
    bonjour,
    Après l'essai, l'alimentation a été effective.
    Merci beaucoup pour votre concours.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Sauvegarde d'une table dans une base de données Access
    Par h_adil dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 26/05/2008, 21h26
  2. [Conception] Alimenter une base de données à partir d'un fichier texte
    Par gharbi5 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 01/10/2007, 13h12
  3. Réponses: 3
    Dernier message: 13/08/2006, 10h50
  4. Trouver les tables d'une base de données access
    Par boss_gama dans le forum ASP
    Réponses: 2
    Dernier message: 22/06/2006, 11h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo