begin process at 2012 02 14 11:37:08
  Trouver un code source :
 
dans
 
Accueil > Forum > 

VB.NET et VB 2005

 > 

Base de données

 > 

Access

 > 

BD Access problème pour accéder à une BD


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

BD Access problème pour accéder à une BD

jeudi 6 mars 2008 à 19:18:19 | BD Access problème pour accéder à une BD

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+
jeudi 13 mars 2008 à 16:25:23 | Re : BD Access problème pour accéder à une BD

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 ?
jeudi 13 mars 2008 à 18:39:01 | Re : BD Access problème pour accéder à une BD

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 !
jeudi 21 août 2008 à 10:17:10 | Re : BD Access problème pour accéder à une BD

bendimerad

à toute personne disponible pour m'aider, merci d'avance:
j'ai déclaré ma base et ma table ainsi:
Public db As Database
Public rst As Recordset

mais quant je lance une erreur apparait me disant que "type défini par l'utilisateur non défini" .
Que dois je faire?
merci.
Bendimerad
jeudi 21 août 2008 à 10:41:57 | Re : BD Access problème pour accéder à une BD

bendimerad

je sais c'est en relation avec une référence dans le menu projet, mais laquelle?

Bendimerad
jeudi 21 août 2008 à 20:08:22 | Re : BD Access problème pour accéder à une BD

BeuheC

Salut

Je peux te répondre mais pas avant ce Week-end ...

En attendant peux tu me préciser quel langage et quel logiciel tu utilises ?
vendredi 22 août 2008 à 09:10:09 | Re : BD Access problème pour accéder à une BD

bendimerad

j'utilise VB 6 langage visual basic, merci pour l'interêt au sujet, à bientôt,Salut,

Bendimerad
vendredi 22 août 2008 à 09:32:53 | Re : BD Access problème pour accéder à une BD

bendimerad

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

Bendimerad

vendredi 22 août 2008 à 10:15:45 | Re : BD Access problème pour accéder à une BD

BeuheC

Le code que tu as recopié est du VB 2005.
Donc c'est normal si tu as plein d'erreurs à la compilation.

Ce soir ou demain je te liste les références qui m'ont permis d'utiliser les BD Access.

Tu dois pouvoir trouver la réponse sur ce site, moi je ne les ai pas inventés.
Mais je ne sais plus où j'ai trouvé ca ...

Je te tiens au courant.



Cette discussion est classée dans : bd, private, déclaration, dts, dta


Répondre à ce message

Sujets en rapport avec ce message

Connexion base de données multi-tables [ par snoopishere ] Bonjour à tous,Voilà j'ai un petit problème, j'ai créé un datagridview qui affiche les données de deux tables "effectif" et "inactivité" grâce des joi validation d'un nouveau enregistrement avec VB 2005 [ par germany1970 ] Bonjour, j'ai une base de données acess (STOCK) qui contient deux tableau (FOURNISSEUR) et (PROD), mon problème et le suivant : avec le premier tablea problème avec une base de donnée acess qui contienne deux tableau [ par germany1970 ] Bonjour, j'ai une base de données acess (STOCK) qui contient deux tableau (FOURNISSEUR) et (PROD), mon problème et le suivant : avec le premier tabl Erreur de syntaxe dans l'instruction INSERT INTO [ par hajar2809 ] Bonsoir tout le monde, J'espère qu'une âme charitable pourrait m'aider à comprendre ce qui se passe avec le code ci-dessous [^^sad1] . Je veux insére ajout d'enregistrement en vb [ par bassemkhouildi ] salut tt le monde j'ai un problem avec le boutton ajouter ,,, le prob est a dta.update(dts,"fiche") erreur a la instruction insert into SVP aidr moi savoir si un enregistrement existe déjà ou non [ par germany1970 ] Bonjour, alors je développe avec VB 2005.avec une base de données acess. je veux avant de valider un nouveau enregistrement il vérifie si le numéro d Modification d'un enregistrement sur VB.NET [ par liondes ] Salut tout le monde Le programme ci dessous consiste à modifier une ligne entière c'est la première et la seule ligne de la table sécurité (login,pass comment enregistrer les donnees contenues dans un datagridview vers la base de donnes [ par djamal_dine ] bsr a tous ,je voudrai savoir comment je pourrai enregistrer les donnees de mon gridview vers ma base de donnees .J'ai specifie le datasource de mon g probléme dans l'ajout d'un enregistrement [ par youma85 ] salut tous le monde bein je suis débutant dans vb .net, et je viens de créer un programme qui se connecte avec une base de données acces. Lorsque je v Probléme de mise a jour DataTable en VB 2008 [ par lovelyhind ] Bonjour j'ai un probléme sur une application en visual basic 2008,la base de donnée est en Access [code=vb]'déclaration des variables Private


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,014 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales