de mémoire, les crochets comme tu les as utilisé transforme le champ temps en variable c'est a dire qu'Access attend que tu lui fournisses une valeur pour temps
à ta place, j'essaierai sans les crochets:
sql = "SELECT * FROM partie ORDER BY temps ASC"
de plus, tu fais
1 2
| rst = cmd.Execute()
rst.Close() |
c'est à dire que tu affectes une valeur à ton recordset et juste après tu le fermes sans rien faire d'autre entre temps donc c'est normal que ça ne fasse rien du tout
pour ma part, j'ai créé un classe Clsconnexion
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
| Imports System.Data
Imports System.Data.OleDb
Public Class ClsConnexion
'Vars SQL
Dim connStr As String
Dim myConnection As New OleDbConnection
Dim DB_Connection As New OleDbConnection
Dim OleDBCmdCount As String
Public ConnectionStatus As Boolean = False
'Création de l'instance.
Public Sub New(ByVal base As String, ByVal mdp As String)
'Mise des variables de connexion en blob.
If CreateOleDBConnection(base, mdp) Then
'Console.WriteLine("Connexion ouverte TRUE")
ConnectionStatus = True
Else
'Console.WriteLine("Connexion ouverte FALSE")
ConnectionStatus = False
End If
End Sub
'Initialisatin de la connexion SQL.
Public Function CreateOleDBConnection(ByVal base As String, ByVal mdp As String) As Boolean
Try
connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & base & ";Jet OLEDB:Database Password=" & mdp & ";"
Dim myConnection As New OleDbConnection(connStr)
DB_Connection.ConnectionString = connStr
DB_Connection.Open()
'Console.WriteLine("Connexion ouverte")
Return True
Catch ex As Exception
Console.WriteLine(ex.Message)
Return False
End Try
End Function
''' <summary>
''' Fonction permettant d'effectuer une requête de type "Select"
''' </summary>
''' <param name="Command"></param>
''' <returns>Retourne un objet de type System.Data.OleDB.OleDataReader</returns>
''' <remarks></remarks>
Public Function RequeteSelect(ByVal Command As String) As OleDbDataReader
Dim oReader As OleDbDataReader
If DB_Connection.State = ConnectionState.Closed Then
DB_Connection.Open()
End If
OleDBCmdCount = Command
Dim SelectCommand As New OleDbCommand(OleDBCmdCount, DB_Connection)
oReader = SelectCommand.ExecuteReader()
SelectCommand.Dispose()
Return oReader
End Function
''' <summary>
''' Permet de fermer la connexion à la base
''' </summary>
''' <remarks></remarks>
Public Sub CloseClass()
DB_Connection.Close()
End Sub
''' <summary>
''' Fonction permettant d'effectuer une requête ne renvoyant aucun résultat ("Insert", "Delete", "Update"... )
''' </summary>
''' <param name="requete"></param>
''' <remarks></remarks>
Public Sub Requete(ByVal requete As String)
Dim theSqlCommand As New System.Data.OleDb.OleDbCommand(requete)
theSqlCommand.Connection = DB_Connection
theSqlCommand.ExecuteNonQuery()
theSqlCommand.Dispose()
End Sub
End Class |
et je m'en sert de la façon suivante:
1 2 3 4 5 6 7
|
'création de la connexion
Dim maConnexion = New ClsConnexion(cheminDeLaBase,MotDePasseDeLaBase)
Dim monDataReader as OleDbDataReader = MaConnexion.RequeteSelect("SELECT * FROM partie ORDER BY temps ASC")
maConnexion.CloseClass()
'Traitement de monDataReader |
tiens moi au courant si tu as des questions
Partager