IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 .NET Discussion :

Problème avec ORDER BY sous VB 2005 (base de données ACCESS)


Sujet :

.NET

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 11
    Points : 7
    Points
    7
    Par défaut Problème avec ORDER BY sous VB 2005 (base de données ACCESS)
    Bonjour,
    je programme sous VB2005 mon problème est de trier une base de données ACCESS à partir d'un champ (en l'occurrence il s'appelle temps) dans un ordre croissant.
    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Dim Cnx As New ADODB.Connection
      Cnx.ConnectionString = "Provider=microsoft.jet.OLEDB.4.0;DATA source = ..\..\puissance4.mdb" 
      Cnx.Open() 
      Dim cmd As New ADODB.Command() 
      cmd.CommandType = ADODB.CommandTypeEnum.adCmdText
      Dim rst As New ADODB.Recordset
      Dim sql As String
     
      sql = "SELECT * FROM partie ORDER BY [temps] ASC"   <== le problème est ici je pense
      rst.Open(sql, Cnx)
      cmd.ActiveConnection = Cnx 
      rst = cmd.Execute() 
      rst.Close()
      Cnx.Close()
    Voilà, ca compile mais le problème c'est que ca ne trie pas ma base dans l'ordre croissant du temps, ca ne fait rien du tout .. j'ai pourtant spécifié que temps était de type numérique dans access mais rien y fait. comment dois-je m'y prendre ?
    merci d'avance

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    948
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 948
    Points : 1 111
    Points
    1 111
    Par défaut
    Ce n'est à priori pas un problème vbscript mais un problème access, tu peux essayer d'aller voir sur le forum access, ils sauront peut etre mieux répondre qu'ici.

  3. #3
    Membre averti Avatar de blade159
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2004
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 226
    Points : 332
    Points
    332
    Par défaut
    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:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sql = "SELECT * FROM partie ORDER BY temps ASC"
    de plus, tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    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
    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:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

Discussions similaires

  1. Réponses: 9
    Dernier message: 10/04/2015, 15h01
  2. probléme avec la commande qui importe la base de donnée
    Par persé dans le forum Administration
    Réponses: 4
    Dernier message: 10/04/2013, 15h23
  3. Réponses: 7
    Dernier message: 15/05/2012, 11h39
  4. Problème avec "Assistant Paramétrage du moteur de base de données"
    Par Chauve souris dans le forum MS SQL Server
    Réponses: 0
    Dernier message: 01/08/2010, 14h32
  5. problème avec app.config sous vs 2005
    Par eldrad95 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 30/10/2009, 12h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo