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

VB.NET Discussion :

Naviguer dans enregistrements BDD Access [Débutant]


Sujet :

VB.NET

  1. #1
    Membre habitué
    Inscrit en
    Mai 2004
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 70

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2004
    Messages : 301
    Points : 130
    Points
    130
    Par défaut Naviguer dans enregistrements BDD Access
    Bonjour
    J'ai créé ce code pour un formulaire de recherche
    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
    TxtInterroTitre.Text = InterroTitre.Titre.Text
     
            Dim MyConnexion As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & _
                         "C:\Access\DvdData.mdb")
            Dim Mycommand As OleDbCommand = MyConnexion.CreateCommand()
     
            Mycommand.CommandText = "SELECT * FROM Vidéo WHERE TitreFilm like '%" & TxtInterroTitre.Text & "%'"
            MyConnexion.Open()
     
            Dim myReader As OleDbDataReader = Mycommand.ExecuteReader()
            Do While myReader.Read
                TextBoxNuméro.Text = myReader.GetValue(0).ToString
                TextBoxTitre.Text = myReader.GetValue(1).ToString
                TextBoxAnnée.Text = myReader.GetValue(27).ToString
            Loop
    Ca fonctionne mais à l'affichage j'ai le dernier enregistrement trouvé
    Comment faire pour avoir le premier et ensuite afficher les suivants avec un bouton de commande
    Merci de votre aide

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Février 2006
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2006
    Messages : 505
    Points : 293
    Points
    293
    Par défaut
    Y a plusieurs façon de faire, moi je mettrais le résultat de la bd dans un datatable pour ensuite coder ton bouton pour de déplacement dans la datatable[/CODE]

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Février 2006
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2006
    Messages : 505
    Points : 293
    Points
    293
    Par défaut
    vite fait je ferais comme ceci ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Public _Ds As New DataSet
     
    Dim da As New OleDbDataAdapter(""SELECT * FROM Vidéo WHERE TitreFilm like '%" & TxtInterroTitre.Text & "%'"
    ", "Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & "C:\Access\DvdData.mdb")
            da.Fill(_Ds, "TblDVD")
    da = Nothing
    oups !!

  4. #4
    Membre expérimenté Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Points : 1 699
    Points
    1 699
    Par défaut
    Citation Envoyé par Jean-Luc80 Voir le message
    Comment faire pour avoir le premier et ensuite afficher les suivants avec un bouton de commande
    Je ne connais pas tes contraintes, mais tu peux aussi utiliser un datagridview, bindingsource, bindingnavigator et co. Comme cela, avec le bindingnavigator, tu peux facilement naviguer d'un enregistrement à l'autre.
    N'oubliez pas le tag et

  5. #5
    Membre habitué
    Inscrit en
    Mai 2004
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 70

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2004
    Messages : 301
    Points : 130
    Points
    130
    Par défaut
    Bonjour
    J'ai réussi à faire ce que je voulais avec ce code grâce au cours trouvé ici de J-M Rabilloud

    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
    Imports System
    Imports System.Data
    Imports System.Data.OleDb
    Imports Microsoft.VisualBasic
     
    Public Class RésultatTitre
        Inherits System.Windows.Forms.Form
        Private WithEvents MonRS As New ADODB.Recordset
        Private Sub RésultatTitre_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     
            TxtInterroTitre.Text = InterroTitre.Titre.Text
            Dim MaConn As New ADODB.Connection
            MaConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & _
            "C:\Access\DvdData.mdb"
            MaConn.Open()
            With MonRS
                .ActiveConnection = MaConn
                .CursorLocation = ADODB.CursorLocationEnum.adUseServer
                .CursorType = ADODB.CursorTypeEnum.adOpenKeyset
                .LockType = ADODB.LockTypeEnum.adLockPessimistic
                .Open("SELECT * FROM Vidéo WHERE TitreFilm like '%" & TxtInterroTitre.Text & "%'")
            End With
        End Sub
     
        Private Sub Suivant_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Suivant.Click
            On Error GoTo Err_suivant_Click
            MonRS.MoveNext()
    Exit_suivant_Click:
            Exit Sub
    Err_suivant_Click:
            MsgBox("C'était la dernière fiche ! ", 48, "Collection de DVD")
            Resume Exit_suivant_Click
        End Sub
        Private Sub Précédent_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Précédent.Click
            On Error GoTo Err_Précédent_Click
            MonRS.MovePrevious()
    Exit_Précédent_Click:
            Exit Sub
    Err_Précédent_Click:
            MsgBox("C'était la première fiche ! ", 48, "Collection de DVD")
            Resume Exit_Précédent_Click
        End Sub
        Private Sub MonRS_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, ByVal Perror As ADODB.Error, ByRef Adstatus As ADODB.EventStatusEnum, ByVal PRecordset As ADODB.Recordset) Handles MonRS.MoveComplete
            Me.TextBoxNuméro.Text = MonRS.Fields(0).Value
            Me.TextBoxTitre.Text = MonRS.Fields(1).Value
            Me.TextBoxAnnée.Text = MonRS.Fields(27).Value
        End Sub
     
        Private Sub Dernier_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Dernier.Click
            MonRS.MoveLast()
        End Sub
     
        Private Sub Premier_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Premier.Click
            MonRS.MoveFirst()
        End Sub
    End Class
    Par contre j'ai un petit souci
    En effet je dois cliquer deux fois sur les boutons suivant et précédent pour avoir le message "première ou dernière fiche" comme si il y avait une fiche "blanche" à la fin ou au début

  6. #6
    Membre habitué
    Inscrit en
    Mai 2004
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 70

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2004
    Messages : 301
    Points : 130
    Points
    130
    Par défaut
    bonjour
    J'ai un autre souci
    Quand je tombe sur un champ vide mon form continue d'afficher le résultat précédent!
    Comment tester si un champ est vide dans une BDD Access
    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
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    Imports System
    Imports System.Data
    Imports System.Data.OleDb
    Imports Microsoft.VisualBasic
     
    Public Class RésultatTitre
        Inherits System.Windows.Forms.Form
        Private WithEvents MonRS As New ADODB.Recordset
     
        Private Sub RésultatTitre_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            TxtInterroTitre.Text = InterroTitre.Titre.Text
            Me.Text = "Films contenant les mots '" & TxtInterroTitre.Text & "'"
            Dim MaConn As New ADODB.Connection
            MaConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & _
            "C:\Access\DvdData.mdb"
            MaConn.Open()
            With MonRS
                .ActiveConnection = MaConn
                .CursorLocation = ADODB.CursorLocationEnum.adUseServer
                .CursorType = ADODB.CursorTypeEnum.adOpenKeyset
                .LockType = ADODB.LockTypeEnum.adLockReadOnly
                .Open("SELECT * FROM Vidéo WHERE TitreFilm like '%" & TxtInterroTitre.Text & "%'")
            End With
            Me.TextBoxNuméro.Text = MonRS.Fields(0).Value
            Me.TextBoxTitre.Text = MonRS.Fields(1).Value
            Me.TextBoxRéalisateur.Text = MonRS.Fields(22).Value
            Me.TextBoxScénario.Text = MonRS.Fields(24).Value
            Me.TextBoxDialogues.Text = MonRS.Fields(25).Value
            Me.TextBoxMusique.Text = MonRS.Fields(26).Value
            Me.TextBoxAnnée.Text = MonRS.Fields(27).Value
            Me.TextBoxGenre.Text = MonRS.Fields(28).Value
            Me.TextBoxDurée.Text = ConvMinuteHeure(MonRS.Fields(29).Value)
            Me.TextBoxRésumé.Text = MonRS.Fields(30).Value
            Me.CheminAffiche.Text = MonRS.Fields(31).Value
            Me.TextBoxActeur1.Text = MonRS.Fields(2).Value
            Me.TextBoxRole1.Text = MonRS.Fields(3).Value
            Me.TextBoxActeur2.Text = MonRS.Fields(4).Value
            Me.TextBoxRole2.Text = MonRS.Fields(5).Value
            Me.TextBoxActeur3.Text = MonRS.Fields(6).Value
            Me.TextBoxRole3.Text = MonRS.Fields(7).Value
            Me.TextBoxActeur4.Text = MonRS.Fields(8).Value
            Me.TextBoxRole4.Text = MonRS.Fields(9).Value
            Me.TextBoxActeur5.Text = MonRS.Fields(10).Value
            Me.TextBoxRole5.Text = MonRS.Fields(11).Value
            Me.TextBoxActeur6.Text = MonRS.Fields(12).Value
            Me.TextBoxRole6.Text = MonRS.Fields(13).Value
            Me.TextBoxActeur7.Text = MonRS.Fields(14).Value
            Me.TextBoxRole7.Text = MonRS.Fields(15).Value
            Me.TextBoxActeur8.Text = MonRS.Fields(16).Value
            Me.TextBoxRole8.Text = MonRS.Fields(17).Value
            Me.TextBoxActeur9.Text = MonRS.Fields(18).Value
            Me.TextBoxRole9.Text = MonRS.Fields(19).Value
            Me.TextBoxActeur10.Text = MonRS.Fields(20).Value
            Me.TextBoxRole10.Text = MonRS.Fields(21).Value
        End Sub
     
        Private Sub Suivant_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Suivant.Click
            On Error GoTo Err_suivant_Click
            MonRS.MoveNext()
    Exit_suivant_Click:
            Exit Sub
    Err_suivant_Click:
            MsgBox("C'était la dernière fiche ! ", 48, "Collection de DVD")
            Resume Exit_suivant_Click
        End Sub
        Private Sub Précédent_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Précédent.Click
            On Error GoTo Err_Précédent_Click
            MonRS.MovePrevious()
    Exit_Précédent_Click:
            Exit Sub
    Err_Précédent_Click:
            MsgBox("C'était la première fiche ! ", 48, "Collection de DVD")
            Resume Exit_Précédent_Click
        End Sub
        Private Sub MonRS_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, ByVal Perror As ADODB.Error, ByRef Adstatus As ADODB.EventStatusEnum, ByVal PRecordset As ADODB.Recordset) Handles MonRS.MoveComplete
            Me.TextBoxNuméro.Text = MonRS.Fields(0).Value
            Me.TextBoxTitre.Text = MonRS.Fields(1).Value
            Me.TextBoxRéalisateur.Text = MonRS.Fields(22).Value
            Me.TextBoxScénario.Text = MonRS.Fields(24).Value
            Me.TextBoxDialogues.Text = MonRS.Fields(25).Value
            Me.TextBoxMusique.Text = MonRS.Fields(26).Value
            Me.TextBoxAnnée.Text = MonRS.Fields(27).Value
            Me.TextBoxGenre.Text = MonRS.Fields(28).Value
            Me.TextBoxDurée.Text = ConvMinuteHeure(MonRS.Fields(29).Value)
            Me.TextBoxRésumé.Text = MonRS.Fields(30).Value
            Me.CheminAffiche.Text = MonRS.Fields(31).Value
            Me.TextBoxActeur1.Text = MonRS.Fields(2).Value
            Me.TextBoxRole1.Text = MonRS.Fields(3).Value
            Me.TextBoxActeur2.Text = MonRS.Fields(4).Value
            Me.TextBoxRole2.Text = MonRS.Fields(5).Value
            Me.TextBoxActeur3.Text = MonRS.Fields(6).Value
            Me.TextBoxRole3.Text = MonRS.Fields(7).Value
            Me.TextBoxActeur4.Text = MonRS.Fields(8).Value
            Me.TextBoxRole4.Text = MonRS.Fields(9).Value
            Me.TextBoxActeur5.Text = MonRS.Fields(10).Value
            Me.TextBoxRole5.Text = MonRS.Fields(11).Value
            Me.TextBoxActeur6.Text = MonRS.Fields(12).Value
            Me.TextBoxRole6.Text = MonRS.Fields(13).Value
            Me.TextBoxActeur7.Text = MonRS.Fields(14).Value
            Me.TextBoxRole7.Text = MonRS.Fields(15).Value
            Me.TextBoxActeur8.Text = MonRS.Fields(16).Value
            Me.TextBoxRole8.Text = MonRS.Fields(17).Value
            Me.TextBoxActeur9.Text = MonRS.Fields(18).Value
            Me.TextBoxRole9.Text = MonRS.Fields(19).Value
            Me.TextBoxActeur10.Text = MonRS.Fields(20).Value
            Me.TextBoxRole10.Text = MonRS.Fields(21).Value
        End Sub
     
        Private Sub Dernier_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Dernier.Click
            MonRS.MoveLast()
        End Sub
     
        Private Sub Premier_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Premier.Click
            MonRS.MoveFirst()
        End Sub
     
        Private Sub CheminAffiche_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheminAffiche.TextChanged
            Affiche.Image = Image.FromFile("C:\AffichesRéduites\" & CheminAffiche.Text)
        End Sub
     
        Private Sub BtnFermer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnFermer.Click
            Close()
        End Sub
     
    End Class
    Merci pour votre aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/06/2010, 13h19
  2. [VB6] Supprimer un enregistrement bdd access
    Par floran30 dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 19/06/2006, 15h24
  3. insertion d'un champs dans une bdd access
    Par pepper18 dans le forum SGBD
    Réponses: 1
    Dernier message: 26/05/2006, 19h47
  4. Problème d'ajout multiples dans un BDD Access
    Par arnaud_verlaine dans le forum Langage SQL
    Réponses: 3
    Dernier message: 31/05/2004, 13h34
  5. Comment créer une Table dans 1 Bdd ACCESS avec Builder??
    Par makandja dans le forum C++Builder
    Réponses: 6
    Dernier message: 17/03/2004, 20h21

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