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)

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é 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 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 Insertion donnée base access [ par Triptek ] Bonjour,J'ai un petit problème quant à l'insertion de donnée dans ma base access. Il me donne une erreur du type "point virgule absent dans la requête update datamember probleme de liste enfant ... [ par jfuck ] Bonjour, Avez vous une solution pour résoudre mon probleme. J'ai un code utilisant un dataadapter et un dataset. Je parviens a remplir mon datagridvie Déclaration de Type [ par fiko81 ] Salut tout le monde, Je voulais savoir s'il était possible de déclarer un type qui sera utilisé dans un autre type :Private Type MyFirstTab   Var1 As Pb tt bete d'ajout et de suppression d'enregistrement [ par Praz ] Voilà kan je veux ajouter ou supprimer un enregistrement il me renvoir l'erreur 3027 me disant ke ma base est en lecture seule alors ke ce n'est pas l HELP ME PLEAZZZZZZZZ UREGNT !!!! Dot.net [ par carter2 ] salut les gars je suis un developeur en visual basic .6 et je migre vers le .net 2003, mais le problème qui se pose, c'est au niveau de la déclaratio erreur systeme incompréhensible [ par gargourifahmi ] Cette procedure d'un bouton d'ajout genere une erreur systeme lorsque j'appuie sur le bouton "ajouter" et l'execution s'arrete au niveau de la command Port paralléle forcé [ par cerf59 ] Bonjour, Mon problème est le suivant : J'ai créé le programme suivant pour recevoir des donner sur le port // mais d'abbord en le testant je me suis a


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

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

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,328 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.