begin process at 2008 07 06 18:47:20
1 205 717 membres
280 nouveaux aujourd'hui
14 119 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : BD Access problème pour accéder à une BD [ Base de données / Access ] (BeuheC)

BD Access problème pour accéder à une BD le 06/03/2008 19:18:19

BeuheC
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.

A+

Re : BD Access problème pour accéder à une BD le 13/03/2008 16:25:23

petitcaro112
Réponse acceptée !

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 :

PublicFunction 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

If My .Computer.FileSystem.FileExists(DbFn) Then   'Teste si la BD existe

cnxstr =

"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 !

EndFunction


Public

Function CnxTable(ByVal sTable AsString)   '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

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()

Est ce que ça te convient ou tu as d'autres questions ?

Re : BD Access problème pour accéder à une BD le 13/03/2008 18:39:01

BeuheC
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 ;-)

Encore merci pour ta réponse !


Classé sous : bd, private, déclaration, dts, dta

Participer à cet échange

Pub



Appels d'offres

WEB DESIGN
Budget : 1 000€
Plugin Dialer outlook
Budget : 2 000€
Travail graphique- ill...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS