Bonjour,

Je ne suis pas expert en VB.Net et j'ai quelques problèmes pour me connecter à une base Access via une fonction.

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
 
Imports System
Imports System.Data.OleDb
 
Public Class Classe_Fonctions
 
    Public Shared Function Fonction_requete_sql_myreader()
 
        Dim MyConnexion As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & Form_parametre.TextBox_chemin_bdd.Text & "Donnees.mdb")
        Dim Mycommand As OleDbCommand = MyConnexion.CreateCommand()
        Mycommand.CommandText = "SELECT Tolerance_emboitement FROM Resume_PMS WHERE LCN_Racine = '600' AND Flotte = '2408'"
        MyConnexion.Open()
        Dim myReader As OleDbDataReader = Mycommand.ExecuteReader()
        myReader.Read()
        If (myReader IsNot DBNull.Value) Then
            Return myReader.GetString(0)
        End If
        myReader.Close()
        MyConnexion.Close()
 
    End Function
 
End Class
Et l'appel de la fonction, il remplie un champ de DataGridView avec la chaine de caractère retournée

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
DataGridView1.Item(26, ligne).Value = Classe_Fonctions.Fonction_requete_sql_myreader()
Ce code fonctionne très bien si il est placé directement dans le formulaire (sans la déclaration de la fonction donc de Dim MyConnexion As .... à .... MyConnexion.Close() )
Par contre dès que ce code se trouve dans une fonction (dans la même classe ou dans une classe séparée) une erreur non spécifiée se produit lors de l'ouverture de la connexion.

Nom : Capture.PNG
Affichages : 419
Taille : 156,0 Ko

Au début je travaillais avec des arguments mais pour vérifier que tout était bon je suis revenu avec des chaines de caractères.