Connexion à une base de données et défilement des enregistrements

Description

C'est tout simple : voici un programme qui se connecte à une base de données (Test.mdb) et qui, toutes les secondes, se déplace d'un enregistrement. Cela permet donc de lister la base.

J'ai mis ce code car en fait j'ai eu quelques difficulté à le trouver sur le site.
Bien entendu, il est pour des débutants.

02/05/03
Par contre j'ai un petit problème :
A côté de ce programme, j'ai fait une interface en ASP pour pouvoir ajouter dynamiquement des enregistrement dans la base. En fait, je lance mon programme et ensuite je lance mon interface. Je vois donc des enregistrements défiler dans ma fenetre.
En meme temps je rajoute un enregistrement via la page ASP. Une fois l'enregistrement effectué il devrait s'afficher dans le programme. Helas non. ALORS SI QUELQU'UN SAIT COMMENT ON FAIT POUR RAFRAICHIR LA BASE DE DONNEE DANS VB.... je lui en serais très reconnaissant !!
Merci a tous !!

03/05/03
Grace a PROGRAMMIX j'ai pu corriger mon probleme ! J'ai mis le rsADO.Requery dans la boucle "if" qui test si la base est finie.
Merci bcp Programmix!
Mais il reste encore un truc. Le rafraichissement de la base ne se fait qu'au second passage !
Mais bon c'est déjà pas mal !
Les aides et commentaires sont toujours les bien venus !
Merci @ tous...

03/05/03... Quelques heures après..... ;o) !
J'ai rajouter deux fichiers dans le zip pour effectuer un petit test de conflit.
Le test est simple. Il se compose de deux pages en ASP qui permettent une action d'enregistrement sur la base. L'EXE Standard liste le contenu de la base.
[b]Réalisation du test :/b
1/ Placer le contenu du zip dans un répertoire situé sur un serveur (wwwroot).
2/ Lancer l'exécutable accesBase.exe
3/ Exécuter la page saisie_nom.asp dans un navigateur et insérer un nom dans le champ correspondant puis valider.
[b]Résultat :/b Après l'enregistrement du nom, l'exe accesBase.exe liste le nouvel enregistrement sans conflit (petit bug : attendre le deuxieme passage dans le listage des enregistrements).
Voila !

Source / Exemple :


Option Explicit
'--- Déclaration obligatoire des variables---
' Pour la connection à la base de données
Dim cnnADO As New ADODB.Connection
' Pour la commande à la base de données
Dim cmdADO As New ADODB.Command
' Pour recevoir le résultat de la commande
Dim rsADO As New ADODB.Recordset

'---Paramétrage de la base au lancement de la fenetre---
Private Sub Form_Load()
' Choix du fournisseur de la Base de Données - pour Access - Microsoft jet OLEDB
cnnADO.Provider = "Microsoft.jet.OLEDB.4.0"
' Chemin de la Base de Données - ici le répertoire de l'applicationcnnADO.ConnectionString = App.Path & "\test.mdb"
'Ouverture de la Base de Données
cnnADO.Open
' Pour relier la connexion ouverte à la commande
cmdADO.ActiveConnection = cnnADO
' Configuration de la conmande avec requete SQL
cmdADO.CommandText = "SELECT * FROM ident"
' Initialisation du Curseur Client
rsADO.CursorLocation = adUseClient
' Utilisation d'un Curseur Client Dynamique
rsADO.CursorType = adOpenDynamic
' Transmission de la commande à la méthode Open
rsADO.Open cmdADO
End Sub

'Bouton "Refresh" pour rafraichir la base a tout moment
Private Sub refresh_Click()
rsADO.Requery
End Sub

'---Configuraiton du Timer---
Private Sub Timer1_Timer()
'Affiche dans le champ de texte un enregistrement
Text1.Text = rsADO("nom")
'On se déplace sur l'enregistrement suivant
rsADO.MoveNext
'Boucle "if" : si l'enregistrement suivant n'existe pas
If rsADO.EOF = True Then
'on revient au premier
    rsADO.MoveFirst 
'permet de rafrachir l'affichage, pb: ça ne se fait qu'au tour suivant
    rsADO.Requery
End If
End Sub

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.