Accès au base de données;
Écriture sur fichier texte;
Impression;
Coloriage et chargement d'image
Des informations en temps réels;
Des gestions d'erreur;
Etc!
Des TRUCS et ASTUCES pour les débutants!
Source / Exemple :
'Seulement le module (qui est déjà très longue)
Option Explicit 'Vous devez déclarez tous les variables
'déclaration des variables de type public pour faciliter la visibilité dans le programme
Public saisie As String, requette As String, fichier As String, mot_list As String
Public i As Long, j As Long, k As Long
Public gauche As Long, haut As Long
Public list_incident() As Variant, titre_tableau() As Variant
Public info_supplementaire() As Variant
'les variables de la base de données
'Ajouter la référence "Microsoft Activex Data Objects 2.8 Library"
Public bazy As ADODB.Connection
Public tabla_remplir As ADODB.Recordset, tabla_ajout As ADODB.Recordset, tabla_extract As ADODB.Recordset 'les variables tables ou requêtes
Public chemin_base_de_donnees As String
Sub main() 'démarrage du projet
Load Form1
chemin_base_de_donnees = ouverture_fichier("Ouvrir une base de données ...", "mdb")
Call Connect_Database(chemin_base_de_donnees)
bazy.Close
Form1.Show
End Sub
Public Sub Connect_Database(chemin As String) 'méthode de connexion d'une base de données
If chemin <> "" Then
On Error GoTo tsymandehaizanyityfatsisybazy
Set bazy = New ADODB.Connection 'création de l'objet_variable bazy
'ne pas dépasser 30 seconde l'intéraction avec la base de données (référez vous au ttl du paquet IP)
bazy.CommandTimeout = 30
bazy.ConnectionTimeout = 30
'ilay driver fotsiny no soloina raha hafa ilay type d'accès
bazy.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & chemin, Environ("USERNAME"), "mot de passe" 'Connection vers le fichier Ms-Access
Exit Sub
tsymandehaizanyityfatsisybazy:
MsgBox Error, vbInformation, ""
Else
MsgBox "Vous n'avez pas de base de données!", vbExclamation, "Fermeture du programme!"
End If
End
End Sub
Public Function ouverture_fichier(titre As String, extension As String) As String 'une fonction qui retourne l'adresse d'enregistrement d'un fichier
ouverture_fichier = ""
On Error GoTo 10
With Form1.CommonDialog1 'utilisation de la boîte de dialogue "enregistrer dans ..."
.FilterIndex = 2
.DialogTitle = titre 'titre de la boîte de dialogue
.InitDir = App.Path 'chemin par défaut
.Filter = "Fichier (*." & extension & ")|*." & extension 'définition du type de fichier (son extension)
.ShowOpen 'Afficher la boîte de dialogue
If Len(.FileName) = 0 Then 'on test si vous n'avez pas entré un nom de fichier
10:
ouverture_fichier = ""
.FileName = ""
.InitDir = ""
End If
ouverture_fichier = .FileName 'on recupère cette adresse
End With
End Function
'méthode pour remplir des données provenant d'un SQl dans un control list ou combo
Public Sub Remplir_Liste(list_ko As Control, sql_ko As String, champ_ko As String)
Call Connect_Database(chemin_base_de_donnees)
On Error Resume Next
Set tabla_remplir = New ADODB.Recordset 'instanciation de l'objet de type requête
list_ko.Refresh
On Error GoTo diso
list_ko.Clear 'vider le contenu
tabla_remplir.Open sql_ko, bazy, adOpenKeyset, adLockReadOnly 'execution de la requête
With list_ko
If tabla_remplir.RecordCount = 0 Then
bazy.Close
Exit Sub 'le nombre d'enregistrement est 0
Else
tabla_remplir.MoveFirst 'positionner sur la première enregistrement
While Not tabla_remplir.EOF 'parcourir jusqu'à la fin de l'enregistrement
.AddItem (tabla_remplir.Fields(champ_ko)) 'ajout de chaque champ défini
tabla_remplir.MoveNext 'positionner sur l'enregistrement suivant
Wend
End If
End With
On Error Resume Next
tabla_remplir.Close 'fermer la requête séléction
Set tabla_remplir = Nothing
bazy.Close
Exit Sub
diso:
MsgBox Error & vbCrLf & "Votre requête était : " & sql_ko, vbMsgBoxRtlReading + vbExclamation, ""
bazy.Close
End Sub
'methode d'ajout de données d'une texte dans une seul champ d'une table
Public Sub Ajouter_un_seul_champ(champ_ko As String, valeur As String, list_ko As Control)
Call Connect_Database(chemin_base_de_donnees)
Set tabla_ajout = New ADODB.Recordset
On Error GoTo diso
With tabla_ajout
.Open "INSERT INTO " & champ_ko & "(`" & champ_ko & "`) VALUES('" & Replace(premier_Majuscule(valeur), "'", Chr(146)) & "');" _
, bazy, adOpenDynamic, adLockPessimistic 'insertion de la nouvelle valeur
End With
MsgBox "Enregistrement réussi !", vbInformation, ""
Set tabla_ajout = Nothing
bazy.Close
list_ko.SetFocus
Exit Sub
diso:
MsgBox Error & vbCrLf & vbCrLf & "Recommencez s'il vous plait !", vbCritical, ""
bazy.Close
End Sub
'recuperer un champ à partir d'une requete
Public Function extrait_enregistrement(sql_ko As String, champ_ko As String) As String
Call Connect_Database(chemin_base_de_donnees)
Set tabla_extract = New ADODB.Recordset
On Error Resume Next
tabla_extract.Close
On Error GoTo diso
With tabla_extract
.Open sql_ko, bazy, adOpenDynamic, adLockReadOnly
If .RecordCount <> 0 Then
.MoveFirst
extrait_enregistrement = .Fields(champ_ko) 'récupération du renseignement
End If
End With
On Error Resume Next
tabla_extract.Close
Set tabla_extract = Nothing
bazy.Close
Exit Function
diso:
MsgBox Error & vbCrLf & "Votre SQL etait : " & sql_ko, vbCritical + vbMsgBoxRtlReading, ""
bazy.Close
End Function
'méthode qui recherche une valeur dans une control list ou combo
Public Sub pointer_sur(list_ko As Control, valeur As String)
On Error Resume Next
For k = 0 To list_ko.ListCount - 1
If CStr(list_ko.List(k)) = valeur Then 'on recherche cette valeur
list_ko.Text = list_ko.List(k)
End If
Next k
End Sub
'méthode qui affiche les renseignements personnels d'une matricule dans une fenêtre donnée
Public Sub appeller_form(form_ko As Form, matricule As String)
Call form_ko.Combo2_GotFocus 'remplir d'abord les services
Call form_ko.Combo1_GotFocus 'remplir les matricules après
Call Module1.pointer_sur(form_ko.Combo1, matricule) 'positionner sur le matricule défini
Call form_ko.Combo1_Click 'afficher les renseignements correspondantes
End Sub
'fonction qui renvoi la première lettre en majuscule
Public Function premier_Majuscule(texte As String) As String
On Error Resume Next
premier_Majuscule = UCase(Left(texte, 1)) & Right(texte, Len(texte) - 1)
End Function
Conclusion :
C'est un logiciel complet. Vous pouvez la modifiée selon votre besoin (c'est le but de cette partage).
Soyez, quand même, clément sur les REMARQUES/COMMENTAIRES parce que c'est mon premier programme en tant que débutant.
Pour les débutants : "Visualiser seulement vos problèmes comme du variable et des valeurs : Il peut prendre la forme d'un simple texte, une matrice (tableau) de nombres, une fonction personnalisée ou même une objet (contrôles avec des propriétés)! Vous êtes le magicien de l'information!
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.