Bonjour
Je suis comptable, et depuis une dizaine d’années dans mon cadre professionnel, j’écris et utilise des bases de données ACCESS. Je manipule donc le SQL et VBA.
Pour des raisons stratégiques d’évolution du matériel informatique et des OS partagés entre collègues, je veux à l’avenir piloter les données d’une base ACCESS depuis l’extérieur de la base elle-même. Par exemple, utiliser VB pour accéder aux données d’ACCESS.
Par ailleurs, il est envisagé d’abandonner les produits Microsoft Office au profit d’autres, par exemple Interbase.
Pour l’instant, je me familiarise avec VB dans sa version Visual Basiv 2008 Express B 9.0.30729.1 SP.
Et je fais « mes armes » à partir des cours disponibles sur le site Develppez.com et des exercices de tests.
Aujourd’hui deux questions se posent à moi. Je les aborde dans deux messages différents pour en simplifier le traitement.
Second message :
J’ai décidé pour mon apprentissage de faire des tests. L’un des premiers consiste à utiliser une base de données, de me connecter à celle-ci et d’en manipuler les enregistrements déjà existants.
La base de données est une base ACCESS en registrée dans le répertoire même de mon projet : Base_Donnees.mdb
La table s’appelle : TADHERENTS
Les 3 champs sont :
Prénom Texte
NomFamille Texte
idA Numéro indenté automatiquement
Le projet consiste à déclencher une procédure nommée TestSecondAfficheContenuTable_1
d’afficher dans le label Label1.Text le résultat de la requête suivante :
pour Prénom= "Marcel" et Ida=1 donner NomFamille.
J’ai donc écrit ce qui suit dans un module avec :
En en-tête
Puis
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 'Déclaretions des espaces système Imports System Imports System.Data Imports System.Data.Linq Imports System.Data.OleDb
A l’exécution de la procédure, un message d’erreur est généré pour la donnée Base_DonneeDataSet :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 Module ModuleEssai1 Sub TestSecondAfficheContenuTable_1() 'Récupérer dans la table Adhérents de la base Base_Donnee.mdb les données 'puis les afficher dans le label1 du formulaire Form1 'Creation de l'objet connection Dim Connection As New OleDb.OleDbConnection() 'Parametrage de la chaine de connection Connection.ConnectionString = "provider=microsoft.jet.oledb.4.0;" _ & "data source= " & Application.StartupPath & "\" & Base_Donnee.mdb; 'Déclaration du DataSet Dim DtSet As New DataSet() 'Declare le DataAdapter et selectionne tout les champs de la table Base_Donnee Dim AdapTContact As New OleDb.OleDbDataAdapter("select * from Base_Donnee", Connection) ' Remplissage du dataset AdapTContact.Fill(DtSet, "Base_Donnee") 'Affectation des données recherchées à la variable requête Dim requête = From TADHERENTS In Base_DonneeDataSet.TADHERENTS.AsEnumerable() _ Where (TADHERENTS.Prénom = "Marcel" And TADHERENTS.idA = 1) _ Select TADHERENTS.NomFamille 'Affichage du résultat dans le formulaire Form1 My.Forms.Form1.Label1.Text = requête End Sub End Module
le nom ‘Base_DonneeDataSet’ n’est pas déclaré.
Pourriez-vous m’éclairer sur les raisons de cet incident et m’indiquer le remède à y apporter ?
Je vous remercie infiniment pour votre réponse.
Cordialement
BG
Partager