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:
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 |