BeuheC
Messages postés16Date d'inscriptionlundi 21 janvier 2008StatutMembreDernière intervention15 juin 2010
-
6 mars 2008 à 19:18
BeuheC
Messages postés16Date d'inscriptionlundi 21 janvier 2008StatutMembreDernière intervention15 juin 2010
-
22 août 2008 à 10:15
Bonjour
Première question:
J'ai créé une connection avec une BD, jusque là ca à l'air de fonctionner.
Puis j'ai ajouter une nouvelle connection à une autre BD. Dans le Data Sources je vois bien les 2 BD.
Mon problème est que je n'arrive pas à supprimer une de ces connections.
Comme la première ne m'intéresse plus, j'ai supprimé la BD (le fichier .mdb)
et quand je lance le debugage, j'ai une erreur car il cherche la BD ...
Deuxième question :
J'ai récupérer le code d'un tuto de ce site pour débuter avec les BD.
J'ai une erreur à cette ligne :
'On charge le dataset (dts) grace à la propriété fill du dataadapter (dta)
dta.Fill(dts, "Table1")
OleDbException was unhandled
Erreur de syntaxe dans la clause FROM
Voilà le code :
Imports System
Imports System.Data
Imports System.Data.OleDb
Imports Microsoft.VisualBasic
Public Class Chronos
'Déclaration de la variable pour la connection
Private cnx As OleDbConnection
'Déclaration de la variable pour la commande
Private cmd As OleDbCommand
'Déclaration de la variable pour le dataadapter
Private dta As OleDbDataAdapter
'Déclaration de la variable pour le dataset
Private dts As New DataSet
'Déclaration de la variable pour la requête
Private sql As String
'Déclaration de la variable pour la datatable
Private dtt As DataTable
'Déclaration de la variable pour le datarow
Private dtr As DataRow
'Déclaration de la variable pour le Nº de l'enregistrement
Private rownum As Integer
'Déclaration de la variable pour la connectionstring
Private cnxstr As String
'Déclaration de la variable pour le commandbuilder
Private cmdb As OleDbCommandBuilder
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
BTps1.Text = "OK"
'ES1(1, 1) = 12
'ouverture de la connection(à partir du répertoire de l'application)sur la même ligne cnxstr "provider microsoft.jet.oledb.4.0 ; data source = " & Application.StartupPath & "\BDTps.mdb;"
cnx = New OleDbConnection
cnx.ConnectionString = cnxstr
cnx.Open()
'Création de la requête sql
sql = "select Table1.* from table"
'Création de la commande et on l'instancie (sql)
cmd = New OleDbCommand(sql)
'Création du dataadapter (dta) et on l'instancie (cmd)
dta = New OleDbDataAdapter(cmd)
'On instancie la commande (cmd) à la connection (cnx)
cmd.Connection() = cnx
'On charge le dataset (dts) grace à la propriété fill du dataadapter (dta)
dta.Fill(dts, "Table1")
'On charge la datatable (dtt) grace à la propriété tables du dataset (dts)
dtt = dts.Tables("Table1")
'crátion d'une nouvelle ligne avec les données des textbox
dtr = dts.Tables("Table1").NewRow
dtr("Name") = "139 - Beu-C"
'ajout de la ligne dans le DataSet
dts.Tables("Table1").Rows.Add(dtr)
'création et exécution du commandbuilder pour mettre à jour le DataAdapter
cmdb = New OleDbCommandBuilder(dta)
'mise à jour des données du dataadapter(dta)à partir du commandbuilder (cmdb)
dta.Update(dts, "Table1")
'on vide le dataset pour le recréer avec les nouvelles données
dts.Clear()
dta.Fill(dts, "Table1")
dtt = dts.Tables("Table1")
Me.BTps1.Text = dtt.Rows(0).Item("Name")
End Sub
End Class
Merci à ceux qui auront la gentillesse de me répondre.
petitcaro112
Messages postés46Date d'inscriptionlundi 19 avril 2004StatutMembreDernière intervention30 janvier 2009 13 mars 2008 à 16:25
En fait il faut que dans ta BD il y ait une table qui porte le nom "Table1"... Sinon ça risque pas de marcher !
Je te conseille par exemple de créer une variable srcTable en tant que String et de lui attribuer le nom de ta table.
Moi par exemple dans mes programmes j'ai crée une fonction pour me connecter à une BD, tu peux modifier cette fonction en lui envoyant le nom de ta BD.
J'ai aussi crée une fonction pour me connecter à une table dans la BD et aussi une fonction pour me déconnecter de la BD (très important si tu veux te connecter à une autre BD)
Voici les 3 fonctions et des exemples d'appel de ces fonctions :
Public
Function OpenCnx() 'Fonction pour se connecter à la BD
TEST: 'Le GoTo revient ici
DbFn =
My
.Settings.FullFileName 'c'est le nom de ma BD que je récupère dans le fichier app.config
BeuheC
Messages postés16Date d'inscriptionlundi 21 janvier 2008StatutMembreDernière intervention15 juin 2010 13 mars 2008 à 18:39
Salut, tout d'abord merci beaucoup
Ta réponse est excellente.
Depuis que j'ai posé la question, j'ai un peu avancé et maintenant j'arrive à créer une BD et à créer les table que je souhaite.
J'arrive également à me connecter et à récupérer les infos contenues
dedans (si je les ai inscrits manuellement via Access), par contre je
n'arrive pas à écrire dans les tables via VB ...
Si tu as un petit exemple dans le même style que ceux que tu m'as fourni précedemment, ca serait super ;-)
cs_bendimerad
Messages postés4Date d'inscriptionvendredi 2 mars 2007StatutMembreDernière intervention22 août 2008 22 août 2008 à 09:32
j'ai reopié ton code dans VB 6 et voilà ce que ça donne:
PublicFunction OpenCnx() 'message "incorrect à l'exterieur d'une procedure"
TEST: 'Le GoTo revient ici
DbFn = My.Settings.FullFileName 'c'est le nom de ma BD que je récupère dans le fichier app.config
If My.Computer.FileSystem.FileExists(DbFn) Then 'Teste si la BD existecnxstr "Provider Microsoft.Jet.OleDb.4.0 ; Data Source = " & DbFn & _
" ;Jet OLEDB:Database Password=mon_mdp; Persist Security Info = False"
cnx = New OleDbConnection
cnx.ConnectionString = cnxstr
cnx.Open()
Else 'Si la BD n'existe pas on la cherche grâce un OpenFileDialog
MsgBox("Impossible de se connecter à la base de données",MsgBoxStyle.Information,"ERREUR")
OpenFileDialog1.Title = "Connexion . la base de données"
OpenFileDialog1.ShowDialog() 'On va chercher la BD manuellement
My .Settings.FullFileName = OpenFileDialog1.FileName
GoTo TEST
End If
End Function
Public Function CloseCnx() 'Fonction pour fermer la connexion à la BD
dtt.Clear() 'On vide les données de la table
dts.Clear() 'On vide le DataSet
cnx.Close() 'On ferme la connexion
cnx = Nothing 'On la ferme pour de bon !
End Function
Public Function CnxTable(ByVal sTable As String)
'Connexion à une table en fonction de la donnée reçue
sql = "select " & sTable & ".* From " & sTable
cmd = New OleDbCommand(sql)
dta =New OleDbDataAdapter(cmd)
cmd.Connection() = cnx
dta.Fill(dts,sTable)
dtt = dts.Tables(sTable)
EndFunction
Private Sub Form_Load()
'Dans ton code pour te connecter à une table tu procèdes comme ça :
Dim srcTable As String = "Ma_Table"
OpenCnx()
CnxTable (srcTable)
'Ici tu fais ce que tu as à faire avec la BD
CloseCnx()
End Sub
Que dois-je faire dans l'application pour que ton code soit lu correctement: en rouge ce que le compilateur souligne.