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

Windows Forms Discussion :

DataTable + Access + INSERT + VB.Net


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Informaticien
    Inscrit en
    Août 2007
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien
    Secteur : Service public

    Informations forums :
    Inscription : Août 2007
    Messages : 176
    Par défaut DataTable + Access + INSERT + VB.Net
    Bonjour,

    Est-il possible d'effectuer une requête SQL du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "INSERT INTO myTable (Field1, Field2, Field3) SELECT T1.Field1, T2.Field2, T3.Field3 FROM (T1 LEFT JOIN T2 ON T1.ID = T2.ID) LEFT JOIN T2 ON T2.ID = T3.ID WHERE(((T2.ID) Is Not Null) And ((T1.Status) = 2)) ORDER BY T2.ID, T1.ID);"
    en VB.Net avec T1, T2 et T3, qui sont des tables Access, et myTable qui est un DataTable se trouvant dans ma fonction VB.Net ?

    J'ai volontairement simplifié ma requête SQL. De plus, si myTable est aussi une table Access, alors cela fonctionne. Mais je voudrais remplacer cette table Access par une variable DataTable. Existe-t-il une solution? Merci d'avance.

  2. #2
    Membre éprouvé
    Inscrit en
    Avril 2009
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 99
    Par défaut
    Bonjour,

    Avec Access, je ne sais pas si c'est possible. Par contre, ce tuto sur SQL pourra peut-être t'aider.
    http://sqlpro.developpez.com/cours/sqlaz/dml/
    Il développe pariculièrement les différentes manières d'effectuer un INSERT.

  3. #3
    Membre confirmé
    Homme Profil pro
    Informaticien
    Inscrit en
    Août 2007
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien
    Secteur : Service public

    Informations forums :
    Inscription : Août 2007
    Messages : 176
    Par défaut
    Merci Wapi_gui,

    Je viens de regarder ton tuto, mais malheureusement je n'y ai pas trouvé de solution à mon problème. En fait, je n'ai pas de problème pour la structure de la requête INSERT mais je voudrais pouvoir utiliser un DataTable dans la requête elle-même.

  4. #4
    Membre éprouvé
    Inscrit en
    Avril 2009
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 99
    Par défaut
    Ok, je crois que j'ai compris ce que tu veux (après relecture de ton premier post). En fait, tu voudrais faire un INSERT directement dans une DataTable, c'est bien ça ? Mais pourquoi ne fais-tu pas directement quelque chose genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim DT As New DataTable
    Dim DA As New SqlClient.SqlDataAdapter(Requete, Base)
    DA.SelectCommand().CommandTimeout = Base.ConnectionTimeout
    DA.Fill(DT)

  5. #5
    Membre confirmé
    Homme Profil pro
    Informaticien
    Inscrit en
    Août 2007
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien
    Secteur : Service public

    Informations forums :
    Inscription : Août 2007
    Messages : 176
    Par défaut
    Citation Envoyé par Wapi_gui Voir le message
    Ok, je crois que j'ai compris ce que tu veux (après relecture de ton premier post). En fait, tu voudrais faire un INSERT directement dans une DataTable, c'est bien ça ?
    Tout à fait. Je suis content que tu comprennes car j'avais du mal à exposer le problème.

    Citation Envoyé par Wapi_gui Voir le message
    Mais pourquoi ne fais-tu pas directement quelque chose genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim DT As New DataTable
    Dim DA As New SqlClient.SqlDataAdapter(Requete, Base)
    DA.SelectCommand().CommandTimeout = Base.ConnectionTimeout
    DA.Fill(DT)
    Je viens de regarder ta proposition (merci), mais il me semble que SqlDataAdapter ne fonctionne qu'avec des SELECT.

  6. #6
    Membre éprouvé
    Inscrit en
    Avril 2009
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 99
    Par défaut
    Oui, mais dans ce cas-là, on modifie un tout petit peu ta façon de voir les choses... Au lieu de faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT dans ma DataTable
    tu fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT ma requete puis INSERT le tout dans ma DataTable
    Ça doit pouvoir marcher aussi... c'est juste une autre façon de voir les choses.

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

Discussions similaires

  1. [VB6]Lire une base Access sur le Net.
    Par SNDP dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 04/07/2006, 15h02
  2. [MFC] Accès à une base access sur le net
    Par LapinGarou dans le forum MFC
    Réponses: 4
    Dernier message: 21/03/2006, 12h11
  3. [vb][access] Insert
    Par Alex35 dans le forum VBA Access
    Réponses: 1
    Dernier message: 12/12/2005, 11h41
  4. Graphique access sur le net.
    Par pepe2006 dans le forum Access
    Réponses: 3
    Dernier message: 14/09/2005, 01h26
  5. Réponses: 4
    Dernier message: 09/11/2004, 22h38

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