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.NET Discussion :

Faire plusieurs enregistrement en ADO.net vers Access [Débutant]


Sujet :

VB.NET

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 124
    Points : 80
    Points
    80
    Par défaut Faire plusieurs enregistrement en ADO.net vers Access
    Bonjour du classique pour débutant , je cherche a enregistrer des données dans Access .J'y parviens mais seulement pour un champ dés que je passe à plusieurs champs , j'échoue et obtient le message d'erreur suivant

    Erreur de syntaxe dans l'instruction INSERT INTO.
    Comment dois-je m’y prendre*sachant que par la suite ma base aura une dizaine de champs*?Comment désigner les champs par leur nom ....

    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    Imports System.Data
    Imports System.Data.OleDb
    Imports System.IO
     
    Module Basededonnées
     
        Private ObjetConnection As OleDbConnection ' Déclaration Objet Connexion
        Private ObjetCommand As OleDbCommand ' Déclaration Objet Commande
        Private ObjetDataAdapter As OleDbDataAdapter ' Déclaration Objet DataAdapter
        Private ObjetDataSet As New DataSet()
        Private strSql As String  'String contenant la 'Requête SQL'
        Private ObjetDataTable As DataTable    'déclaration de l'objet datatable
        Public ObjetDataRow As DataRow  ' Déclaration Objet DataRow (ligne)
        Private RowNumber As Integer 'Numéro de l'enregistrement courant   'Numéro de la ligne en cours
        Private strConn As String 'Paramêtres de connexion à la DB
        Private ObjetCommandBuilder As OleDbCommandBuilder  
     
        Sub ouvrirbasedonnee()
     
            strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                "Data Source= C:\Documents and Settings\a\Mes documents\Visual Studio 2010\Projects\Test 18-1\Test 18-1\bin\Debug\mabase.mdb;"
     
            strSql = "SELECT * FROM Test"  
     
            ObjetConnection = New OleDbConnection() 
            ObjetConnection.ConnectionString = strConn 
     
            Try
                ObjetConnection.Open() 
            Catch ex As OleDbException
                MsgBox(ex.Message)
            End Try
     
            ObjetCommand = New OleDbCommand(strSql) 
            ObjetDataAdapter = New OleDbDataAdapter(ObjetCommand)    
            ObjetCommand.Connection() = ObjetConnection   
            ObjetDataAdapter.Fill(ObjetDataSet, "Test") 
            ObjetDataTable = ObjetDataSet.Tables("Test") 
     
     
            'ajouter un enregistrement
            ObjetDataRow = ObjetDataSet.Tables("Test").NewRow()   'ajouter une nouvelle ligne
     
            ' ObjetDataRow("Date") = Now
            ObjetDataRow("Achat") = "ACHAT"   
            ObjetDataRow("Quantité") = 1000 
     
     
            ObjetDataSet.Tables("Test").Rows.Add(ObjetDataRow)
            ObjetCommandBuilder = New OleDbCommandBuilder(ObjetDataAdapter)
            ObjetDataAdapter.Update(ObjetDataSet, "Test") ‘BUG ici 
    ‘Erreur de syntaxe dans l'instruction INSERT INTO.
     
     
            ObjetDataAdapter.Fill(ObjetDataSet, "Test")
            ObjetDataTable = ObjetDataSet.Tables("Test")
     
            ObjetDataSet.Clear()
            ObjetConnection.Close()
     
            ObjetConnection = Nothing     
            ObjetCommand = Nothing
            ObjetDataAdapter = Nothing
            ObjetDataSet = Nothing
            ObjetDataTable = Nothing
            ObjetDataRow = Nothing
     
        End Sub
     
    End Module

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 176
    Points : 25 118
    Points
    25 118
    Par défaut
    insert into table (col1, col2) values (valeurcol1, valeurcol2)

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 124
    Points : 80
    Points
    80
    Par défaut
    Bonjour , je ne peux pas avoir d'erreur de syntaxe sur l'instruction
    INSERT INTO
    étant donné que je ne l'aie jamais utilisée .

    La seule instruction SQL que j'aie utilisée c'est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strSql = "SELECT * FROM Test"
    .

    Et si j'aie compris le principe je suis censé insérer des données via l'objet dataset non pas à l'aide d'une instruction SQL .

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 176
    Points : 25 118
    Points
    25 118
    Par défaut
    c'est le problème des assistants, ca a l'air pratique, mais si on ne le maitrise pas on ne le comprend pas et il fait ce qu'il veut

    pour info ton newrow il est traduit par un insert into ...

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 124
    Points : 80
    Points
    80
    Par défaut
    Le code est bon semble-t-il .Ce qui est moins sur c’est mon fichier .mdb en access 2000.Le problème semble venir de lui .

    Avec une abberation je ne peux pas nommé un champ du nom de «Date» mais par exemple mettre «Date1» à la place .
    Là j’avoue que ce genre de bug me laisse très perplexe mais bon à présent j’arrive à remplir de données plusieurs champs .
    (Je sens que je vais m'arracher les cheveux entre le format des dates sous vb.net à faire correspondre avec le format date sous Access

    Ex

    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
           ObjetDataRow("Date") = "15/02/1986" 'sera refusé avec le message d’erreur Erreur de syntaxe dans l’instruction INSERT INTO ,Le champs est réglé au format texte sous Access
     
            ObjetDataRow("Date1") = "15/02/1986" 'fonctionne correctement*!!
    'le champ Date1 est réglé au format texte sous Acess aussi ,
            ObjetDataRow("Nom") = "Pourvoir"  'l'ordre des objetDataRow n'a pas semble-til d'importance
            ObjetDataRow("Achat") = "ACHAT"
            ObjetDataRow("Quantité") = 1000
     
     
            ObjetDataSet.Tables("Portefeuille").Rows.Add(ObjetDataRow)
            ObjetCommandBuilder = New OleDbCommandBuilder(ObjetDataAdapter) 'Pour modifier les valeurs changées dans le DataAdapter
            ObjetDataAdapter.Update(ObjetDataSet, "Test") 
     
     
            ObjetDataAdapter.Fill(ObjetDataSet, "Test")
            ObjetDataTable = ObjetDataSet.Tables("Test")

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 124
    Points : 80
    Points
    80
    Par défaut
    Ok merci ...Et bonnes fêtes à tous

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 10/10/2014, 22h06
  2. [AC-2007] Copie d'un ou plusieurs enregistrements d'une table vers une autre
    Par facedeharicot dans le forum VBA Access
    Réponses: 7
    Dernier message: 22/08/2011, 08h34
  3. Comment faire une connexion du vb.net avec Access
    Par s_soufiane dans le forum VB.NET
    Réponses: 3
    Dernier message: 08/07/2010, 14h40
  4. découper un texte pour en faire plusieurs enregistrements
    Par moulinmax dans le forum VBA Access
    Réponses: 12
    Dernier message: 17/12/2008, 20h26
  5. Réponses: 12
    Dernier message: 27/08/2004, 15h42

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