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 :

Ecriture via VB dans Base Access


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Février 2019
    Messages : 2
    Par défaut Ecriture via VB dans Base Access
    Bonjour à tous !


    Je viens de m'inscrire sur ce forum, je consultais régulièrement du site et profitait régulièrement des ressources de qualité à disposition.

    Seulement voila, depuis quelques temps j'essaye de faire un programme en vb qui réalise certains traitements faisables avec des ETL et j'ai un soucis que je n'arrive pas à résoudre malgré une attention assidue sur ce site et quelques autres...

    Mon programme possède une interface en vb et fait les "traitements en vba (Access et Excel), c'est un choix personnel.
    Dans le traitement qui pose problème, l'utilisateur choisi un fichier XML, l'affiche dans la datagridview, choisi le fichier access, une macro se lance pour récuperer le fichier xml et l'importer dans sql server.

    Sauf que, l'utilisateur doit renseigner ses informations dans mon programme, et dans l'idéal les informations seraient stockés dans une table, comme ça le VBA access pourrait avoir accès aux infos que vient de saisir l'utilisateur.

    Voici mon la partie de mon code qui pose problème... Je n'arrive pas à avoir simplement le contenu de mes textbox qui contiennent mes informations dans une table Access existante ou tout juste créée.. Je sais qu'il y a des cours dessus, j'ai essayé plusieurs méthodes sans y arriver...

    La par exemple, ca me met aucun message d'erreurs, cela n'affiche rien...

    Merci de m'avoir lu..
    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
     
    Imports System.IO
    Imports Microsoft.Office.Interop '(remplace System.Data Oledb, system.Data, System.IO, System.data.SQL Client)
    Imports System.Data.OleDb 'permet l'accès aux bases de données
    'Ligne necessaire pour pouvoir utiliser les objets Database, TableDef, Field
    Imports Microsoft.Office.Interop.Access.Dao
     
    Public Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
     
            'Déclaration des variables
            Dim oAccess As Access.Application 'Application Access
            Dim oDataBase As Database 'Base de données
            Dim oTable As TableDef 'Table
            Dim oField As Field 'Champ
            Dim cheminACCESS As String
     
            'Selectionner le fichier mdb "
            OpenFileDialog1.Filter = "Fichier Access mdb (*.mdb)|*.mdb|All files (*.*)|*.*"
            OpenFileDialog1.DefaultExt = ".mdb"
            OpenFileDialog1.ShowDialog()
            TextBox1.Text = OpenFileDialog1.FileName
     
            'Mise en place de la variable dans le texte
            cheminACCESS = TextBox1.Text
     
            'Ouverture du fichier mdb (rappel : set et let ne sont plus pris necessaire)
            oAccess = New Access.Application
            oAccess.Visible = True
            oAccess.OpenCurrentDatabase(cheminACCESS)
            oDataBase = oAccess.CurrentDb
     
            'oTable = oDataBase.CreateTableDef("Données")
     
     
            'Lancement de la macro
            oAccess.Run("getData")
     
     
     
            Dim cn As OleDbConnection
            Dim cmd As OleDbCommand
            Dim dr As OleDbDataReader
            Dim icount As Integer
            Dim str As String
            Try
                cn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & chemin)
                cn.Open()
                str = "INSERT INTO DONNEES (col1,col2) values(" & TextBox5.Text & "," & TextBox6.Text & ")"
                'String stores the command And CInt Is used to convert number to string
                cmd = New OleDbCommand(str, cn)
                cmd.ExecuteNonQuery()
                MessageBox.Show(icount)
     
                cn.Close()
                cn.Open()
     
     
            Catch
            End Try
            cn.Close()
     
            MsgBox("OK")
     
        End Sub
    End Class

  2. #2
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Février 2019
    Messages : 2
    Par défaut Solution..
    Pour ceux qui auraient le même problème, voici la solution :
    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
            Dim Provider As String
            Dim DataFile As String
            Dim Connstring As String
            Dim myConnection As OleDbConnection = New OleDbConnection
     
            Provider = "Provider = Microsoft.ACE.OLEDB.12.0;Data Source="
            DataFile = cheminACCESS
            Connstring = Provider & DataFile
     
            myConnection.ConnectionString = Connstring
            myConnection.Open()
     
            'peut fonctionner avec des '?' mais cela ne fonctionnait pas dans mon cas
            Dim str As String
            str = "Insert into kk([Server],[ID],[mdp],[TableName],[cheminXML]) Values (@Server,@ID,@mdp,@TableName,@cheminXML)"
     
            Dim cmd As OleDbCommand = New OleDbCommand(str, myConnection)
            cmd.Parameters.Add(New OleDbParameter("Server", CType(TextBox4.Text, String)))
            cmd.Parameters.Add(New OleDbParameter("ID", CType(TextBox6.Text, String)))
            cmd.Parameters.Add(New OleDbParameter("mdp", CType(TextBox5.Text, String)))
            cmd.Parameters.Add(New OleDbParameter("TableName", CType(TextBox7.Text, String)))
            cmd.Parameters.Add(New OleDbParameter("cheminXML", CType(Label2.Text, String)))
     
            Try
                cmd.ExecuteNonQuery()
                cmd.Dispose()
                myConnection.Close()
     
            Catch ex As Exception
                MsgBox(ex.Message)
     
            End Try

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

Discussions similaires

  1. [LabView] Export de Labview dans base Access
    Par SlySylvain dans le forum LabVIEW
    Réponses: 3
    Dernier message: 22/05/2009, 17h09
  2. [ODBC] Formulaire de recherche dans base ACCESS via PHP
    Par bib.13 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 02/06/2008, 15h06
  3. Importer fichier texte dans base Access
    Par Mymi dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 15/08/2006, 21h21
  4. recherche par mots-clés dans base access
    Par syber72 dans le forum Access
    Réponses: 2
    Dernier message: 07/03/2006, 14h53
  5. Recherche dans base access
    Par VARACH dans le forum VBA Access
    Réponses: 5
    Dernier message: 09/01/2006, 09h17

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