Connexion à une base de donnée (fallait que je mette aussi ma contribution)
NIVEAU 2
Source / Exemple :
'utilisation des objets ADO
'IL FAUT : une form, 4 zones de txt, 5 label, 2 cadres contenant chacun 3 boutons
'd'options, 8 boutons de commandes
'y a aussi l'zip au cas où
'relier la bibliothèque Ado au projet, par la commande Projet/Référence puis
'cochez Microsoft ActiveX Data Objets 2.0 Library.
'J'ai même rajouter le fichier Biblio auquel ont ce connecte (on sait jamais que
'qqun l'a pas (même si je sais qu'il s'installe avec VB) :-)
Option Explicit
'3 types de variables
Dim cnnADO As New ADODB.Connection
Dim cmdADO As New ADODB.Command
Dim rsADO As New ADODB.Recordset
Private Sub cmdedit_Click(Index As Integer)
Dim vntSignet As Variant
Select Case Index
Case 0 'effacer
If rsADO.RecordCount > 0 Then
rsADO.Delete
cmdmove_Click 2
End If
Case 1 'Nouveau
rsADO.AddNew
ReadRecord
txtNom.SetFocus
Case 2 'enregistrer
rsADO![Company Name] = setValue(txtNom.Text)
rsADO!City = setValue(txtville.Text)
rsADO!State = setValue(txtEtat.Text)
vntSignet = rsADO.Bookmark
rsADO.Update
rsADO.Requery
rsADO.Bookmark = vntSignet
ReadRecord
Case 3 'quitter
Unload Me
End Select
End Sub
'Si une zone de texte ne contient rien d'autre que des espaces (fonction Trim$), la valeur
'Null est renvoyée, sinon la fonction renvoie la chaîne de caractères après l'élimination
'des espaces.
Private Function setValue(str As String) As Variant
If Trim$(str) = "" Then
setValue = Null
Else
setValue = Trim$(str)
End If
End Function
Private Sub cmdmove_Click(Index As Integer)
Select Case Index
Case 0 ' 1er
rsADO.MoveFirst
Case 1 ' précédent
rsADO.MovePrevious
If rsADO.BOF Then
Beep
rsADO.MoveFirst
End If
Case 2 'suivant
rsADO.MoveNext
If rsADO.EOF Then
Beep
rsADO.MoveLast
End If
Case 3 'dernier
rsADO.MoveLast
End Select
ReadRecord
End Sub
Private Sub Form_Load()
'Connexion
cnnADO.Provider = "Microsoft.Jet.OLEDB.3.51"
cnnADO.ConnectionString = "F:\Program Files\Microsoft Visual Studio\VB98\Biblio.mdb"
'A modifier par rapport à l'installation de Visual Basic. Chez moi c'est F:
cnnADO.Open
'Configurer la commande
cmdADO.ActiveConnection = cnnADO
cmdADO.CommandText = "SELECT PubID, [Company Name], " _
& " City, State FROM Publishers"
'Configurer et ouvrir le Recordset
rsADO.CursorLocation = adUseClient
rsADO.CursorType = adOpenDynamic
rsADO.LockType = adLockPessimistic
rsADO.Open cmdADO
'lire le 1er enregistrement
ReadRecord
End Sub
Private Sub Form_Unload(Cancel As Integer)
cnnADO.Close
End Sub
'la représentation du contenu des champs dans les zones de txt est réalisé par la
'fonction GetValue
Private Sub ReadRecord()
txtID.Text = GetValue(rsADO!PubId)
txtNom.Text = GetValue(rsADO![Company Name])
txtville.Text = GetValue(rsADO!City)
txtEtat.Text = GetValue(rsADO!State)
lblNr.Caption = "Enregistrement " & rsADO.AbsolutePosition _
& " de " & rsADO.RecordCount
End Sub
Private Function GetValue(fld As Field) As String
If IsNull(fld) Then
GetValue = ""
Else
GetValue = fld
End If
End Function
Private Sub optfilter_Click(Index As Integer)
Select Case Index
Case 0 'aucun
rsADO.Filter = ""
Case 1 'nom avec A
rsADO.Filter = "[Company Name] Like 'A*'"
Case 2
'ville de New York
rsADO.Filter = "City = 'New York'"
End Select
'réexécuter la requête
rsADO.Requery
cmdmove_Click 1
End Sub
Private Sub optsort_Click(Index As Integer)
Select Case Index
Case 0 'aucun
rsADO.Sort = ""
Case 1 'nom
rsADO.Sort = "[Company Name]"
Case 2
'ville,décroissant
rsADO.Sort = "City DESC"
End Select
'réexécuter la requête
rsADO.Requery
cmdmove_Click 1
End Sub
Conclusion :
commenter svp.
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.