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 :

copier des données entre deux table access (vb2005)


Sujet :

VB.NET

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 53
    Points : 31
    Points
    31
    Par défaut copier des données entre deux table access (vb2005)
    voila, je veux fais faire un copier coller d'une colonne (n_facture) de la table "D_F", vers la table "numero" mais je c pas comment faire.

    voila ce que j'ai pu faire, je sais pas quoi faire après
    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
     
    Imports System
    Imports System.Data
    Imports System.Data.OleDb
    Imports Microsoft.VisualBasic
     
     
    Public Class Form1
        Dim cnn1, cnn2 As New OleDb.OleDbConnection
     
     
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            cnn1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\~~\Bureau\BP\facturation.mdb;Persist Security Info=False"
            cnn2.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\~~\Bureau\BP\tmp.mdb;Persist Security Info=False"
        End Sub
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            cnn1.Open()
            Dim sqlcomand As New OleDb.OleDbCommand
            sqlcomand.Connection = cnn1
            sqlcomand.CommandText = "select n_facture from D_F GROUP BY n_facture"
            Dim resultat = sqlcomand.ExecuteScalar
        End Sub
    End Class

    help

  2. #2
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    Après il faut une autre requête (Command) pour insérer les valeurs dans l'autre table

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 53
    Points : 31
    Points
    31
    Par défaut
    Citation Envoyé par bidou Voir le message
    Après il faut une autre requête (Command) pour insérer les valeurs dans l'autre table
    merci pour ta reponse mais je c qu'il faut un insert mais comment je vais metre le resultat dans ce INSERT??
    merci

  4. #4
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    Avec un paramètre

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 53
    Points : 31
    Points
    31
    Par défaut
    Citation Envoyé par bidou Voir le message
    Avec un paramètre
    oui mais comment?

  6. #6
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    un exemple tiré de MSDN

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    command = New OleDbCommand( _
            "INSERT INTO Customers (CustomerID, CompanyName) " & _
            "VALUES (?, ?)", connection)
    command.Parameters.Add("CustomerID", OleDbType.Char, 5, "CustomerID")
    command.Parameters.Add("CompanyName", OleDbType.VarChar, 40, "CompanyName")
    command.ExecuteNonQuery()

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 53
    Points : 31
    Points
    31
    Par défaut
    Citation Envoyé par bidou Voir le message
    un exemple tiré de MSDN

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    command = New OleDbCommand( _
            "INSERT INTO Customers (CustomerID, CompanyName) " & _
            "VALUES (?, ?)", connection)
    command.Parameters.Add("CustomerID", OleDbType.Char, 5, "CustomerID")
    command.Parameters.Add("CompanyName", OleDbType.VarChar, 40, "CompanyName")
    command.ExecuteNonQuery()
    Merci mais je vois pas où est le rapport! ce code permet de faire un INSERT simple et cela je sais le faire; mon problème c'est comment insérer les données que j'ai exporter de ma table de base!!!

  8. #8
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    sensiblement il n'y a que deux méthodes, injecter les données une à une à l'aide d'une commande, injecter toutes les données avec un dataset et un dataadapter ce qui reviendra au même tout en utilisant inutilement un dataset et un dataadapter. Il n'existe pas de commande SQL magique pour coller un morceau de table dans un autre.

  9. #9
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mars 2008
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mars 2008
    Messages : 161
    Points : 166
    Points
    166
    Par défaut
    Bonjour,

    J'ai essayé de faire quelque chose pour toi mais je n'ai pas eu le temps de tester. Seulement je peux te dire que je l'ai déjà fait et ça marche.
    Dans ce que que je te propose, je suppose que dans ta deuxième base de données, se trouve la table D_F avec le champ n_facture.

    Voici donc la recette à ton problème.

    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
    Imports System
    Imports System.Data
    Imports System.Data.OleDb
    Imports Microsoft.VisualBasic
    Public Class Form1
     
    Dim cnn1, cnn2 As New OleDb.OleDbConnection
     
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    cnn1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\~~\Bureau\BP\facturation.mdb;Persist Security Info=False"
    cnn2.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\~~\Bureau\BP\tmp.mdb;Persist Security Info=False"
    End Sub
     
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim custConn As OleDb.OleDbConnection = New OleDb.OleDbConnection(connectstr)
    Dim sqlcomand1 As New OleDb.OleDbCommand
    Dim sqlcomand2 As New OleDb.OleDbCommand
    Dim LeRead As OleDb.OleDbDataReader
    Dim LeNFacture As String
     
     
    'On ouvre la premiere connection
    cnn1.Open()
    'On ouvre la deuxieme connection
    cnn2.Open()
     
    'NB: j'ouvre en même temps la deuxieme connection ici car les ouvertures
    ' et les fermetures de connection prennent du temps.
    ' c'est donc pour optimiser le tps
     
    sqlcomand1.Connection = cnn1
    sqlcomand1.CommandType = CommandType.Text
    sqlcomand1.CommandText = "select n_facture from D_F GROUP BY n_facture"
    LeRead = sqlcomand1.ExecuteReader()
    Do While LeRead.Read
    LeNFacture = LeRead!n_facture
    'On rentre la deuxieme connection
    'cnn2.Open()
     
    sqlcomand2.Connection = cnn2
    sqlcomand2.CommandType = CommandType.Text
    sqlcomand2.CommandText = " INSERT INTO D_F (n_facture) VALUES ('" & LeNFacture & "')"
    sqlcomand2.ExecuteNonQuery()
     
    'cnn2.Close()
    Loop
     
    LeRead.Close()
    cnn1.Close()
    cnn2.Close()
     
    End Sub
    End Class

  10. #10
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mars 2008
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mars 2008
    Messages : 161
    Points : 166
    Points
    166
    Par défaut
    Je n'avais pas vu que ta deuxième table se nommait NUMERO.

    Si c'est le cas tu devra prendre ceci :

    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
    Imports System
    Imports System.Data
    Imports System.Data.OleDb
    Imports Microsoft.VisualBasic
    Public Class Form1
     
    Dim cnn1, cnn2 As New OleDb.OleDbConnection
     
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    cnn1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\~~\Bureau\BP\facturation.mdb;Persist Security Info=False"
    cnn2.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\~~\Bureau\BP\tmp.mdb;Persist Security Info=False"
    End Sub
     
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim custConn As OleDb.OleDbConnection = New OleDb.OleDbConnection(connectstr)
    Dim sqlcomand1 As New OleDb.OleDbCommand
    Dim sqlcomand2 As New OleDb.OleDbCommand
    Dim LeRead As OleDb.OleDbDataReader
    Dim LeNFacture As String
     
     
    'On ouvre la premiere connection
    cnn1.Open()
    'On ouvre la deuxieme connection
    cnn2.Open()
     
    'NB: j'ouvre en même temps la deuxieme connection ici car les ouvertures
    ' et les fermetures de connection prennent du temps.
    ' c'est donc pour optimiser le tps
     
    sqlcomand1.Connection = cnn1
    sqlcomand1.CommandType = CommandType.Text
    sqlcomand1.CommandText = "select n_facture from D_F GROUP BY n_facture"
    LeRead = sqlcomand1.ExecuteReader()
    Do While LeRead.Read
    LeNFacture = LeRead!n_facture
    'On rentre la deuxieme connection
    'cnn2.Open()
     
    sqlcomand2.Connection = cnn2
    sqlcomand2.CommandType = CommandType.Text
    sqlcomand2.CommandText = " INSERT INTO NUMERO (n_facture) VALUES ('" & LeNFacture & "')"
    sqlcomand2.ExecuteNonQuery()
     
    'cnn2.Close()
    Loop
     
    LeRead.Close()
    cnn1.Close()
    cnn2.Close()
     
    End Sub
    End Class
    J'espère que cela pourra t'aider à avancer.

Discussions similaires

  1. Copier des données de deux tables liées (en cascade)
    Par bastien31000 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 18/10/2012, 19h03
  2. procédure stockée pour copier des données entre 2 tables
    Par zaki_1982 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 15/02/2012, 07h50
  3. Copier des données entre 2 tables identiques
    Par calou_33 dans le forum SQL
    Réponses: 3
    Dernier message: 17/02/2010, 14h46
  4. Transferer a la volée des données entre deux tables
    Par schwinny dans le forum Access
    Réponses: 2
    Dernier message: 13/07/2006, 08h50
  5. [ADO.Net][VB.NET] Comment copier des données entre deux BDD différentes ?
    Par maddog2032 dans le forum Accès aux données
    Réponses: 6
    Dernier message: 06/06/2005, 11h01

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