Tout sur les bases access le plus simple du monde (vieux code) voir source 5672

Contenu du snippet

ATTENTION VIEUX CODE
LISEZ PLUTOT LA SOURCE 5672 ET LE SQL (PLUS RAPIDE ET FACILE)

JE NE REPONDS PLUS AUX QUESTIONS SUR CETTE SOURCE PARCEQUE IL Y A QQ ERREURS
DEDANS ET JE NE SAIS PLUS COMMENT ON FAIT POUR UTILISER CES OBJETS VU QUE CA FAIT
DES LUSTRES QUE JE NE LES AIT PLUS UTILISE

LE SQL EST UNIVERSEL ET PLUS UTILISE - MERCI

'Voici une documentation qui vous permettera de vous débrouiller
'avec les bases de donnés. Ici, pas de zip, mais du code (pour
'changer de ceux qui ne mettent que des zip.) Ces infos sont indédites
'elles n'étaient pas dans VBFrance et vous explique pas à pas comment
'faire pour travailler avec les bases de donnés. Ce doc s'adresse à tous.
'donc, les dinosaures de la programmation, faut pas croire que je vous prend
'pour des cons, j'explique aux autres. Et pour l'ORTOGRAF, JE SUIS PAS UN DICO
'Alors, faites comme si vous aviez pas vu les fautes, merci.

'>ETAPE 0 : UN BUG, oui, UN BOGUE, NON !!! (Coup de Geule)

'>ETAPE 1 : Créer la base
'>ETAPE 2 : Ajouter dans la base grâce à VB
'>ETAPE 3 : Lire un enregistrement
'>ETAPE 4 : Se déplacer dans les enregistrements
'>ETAPE 5 : Eviter les erreurs de déplacements
'>ETAPE 6 : Gérer les erreurs de déplacement
'>ETAPE 7 : Supprimer un enregistrement
'>ETAPE 8 : Editer un enregistrement
'>ETAPE 9 : Compter les enregistrements
'>ETAPE 10: Eviter les erreurs de recherche
'>ETAPE 11: Lister les enregistrements dans une Liste (Type Excel)
'>ETAPE 12: RESOLUTION DES PROBLEMES DU SERVICE PACK 5

'******************************************************************************
' ETAPE 0 : UN BUG, oui, UN BOGUE, NON !!!
'*******************************************************************************

'Avant de commencer, je voudrais raler un peu
'Partout, même a la TV, on DIT BOGUE pour une erreur d'ordi,
'mais cela n'a pas de sens. Pourquoi toujours tout françiser ?
'C'est un BUG, ce qui veut dire INSECTE en anglais
'Du temps de l'ENIAC et autres dinosaures, les papillons
'allaient se griller dans les circuits (D'ou le mot BUG) et
'provoquaient des erreurs de calculs.
'mais nos amis français et cannadien ont dit "BOGUE"
'ce que désigne une envellope de MARON ou de CHATAIGNE
'ce qui dénue de tout sens le mot BOGUE
'Si vous ne voulez pas dire BUG, dites INSECTE, mais pas BOGUE

'Mafois, le jour ou vous verrez une CHATAIGNE OU UN MARRON volant venir
'se griller dans un PC, alors vous pourrez dire BOGUE, mais tant que ca arrive pas
'je dis NON, PAS BOGUE, MAIS BUG ou INSECTE (ou ERREUR DE CALCUL)

'Merci de m'avoir écouté (enfin,...lu)
'Pour réagir, n'hésitez pas : MAGIDEV@hotmail.com

'******************************************************************************
' ETAPE 1 : CREER LA BASE
'*******************************************************************************

' 1-Créez, dans une base de donnée Access, une nouvelle table (Mode création)

' 2-Le premier champ sera "CODE", format TEXTE , 10 caratères

' 3-Le second champ sera "NOM", format TEXTE, 50 caractères

' 4-Le troisième champ sera "PRENOM", format TEXTE, 50 caractères

' 5-Créez une clef primaire pour "CODE". Pour créer une clef primaire,
' faites un clic droit sur le petit carré gris à coté du nom du champ
' et choisisez "CLEF PRIMAIRE". Une fois cela fait, cliquez la croix
' de fermeture. Nommez votre table "CLIENTS"

' 6-Si vous avez Access 97, allez directement à l'étape 2
' 7-Si vous avez le pack de mise à jour Visual Basic Service Pack 5 allez en 9

' 8-Si vous avez Access 2000, il faut convertir la base de donnée
' au format Access 97, car votre VB ne lira pas le format 2000
' Cliquez sur le menu "OUTILS", puis sur "UTILITAIRES DE BASE DE DONNEES"
' puis sur "CONVERTIR UNE BASE DE DONNEE",
' puis sur "A LA VERSION PRECEDENTE D'ACCESS"
' Tapez un nom de fichier, enregistrez et fermez Access

'9-Si vous avez installé le SERVICE PACK 5, vous pouvez utiliser les bases
'Access 2000, mais si cela ne fonctionne pas, revenez à l'étape 8

'*****************************************************************************
' ETAPE 2 : Ajouter dans la base grace à VB
'*****************************************************************************

' 1-Créez un projet STANDARD (ou ENTREPRISE pour les heureux possesseur de cette
' version)

' 2-Ajoutez 3 TextBox nommée "CODE", "NOM", "PRENOM"

' 3-Creez le controle DATA
' Les propriétés suivantes sont à changer:

Connect = Access (si c'est une base ACCESS)
DatabaseName = C:\Ma base\base.mdb (Soit le chemin de votre Base de donnés)
EOFAction = 3-Add New (Si on arrive à la fin des enregistrements, VB en crée un
nouveau.)
RecordSource = CLIENTS (soit le nom de la table dans laquelle opérer)

' 4-Créez un bouton avec "AJOUTER" comme Caption (propriété Caption)

' 5-Double cliquez sur le bouton "AJOUTER" et tapez le code suivant

With Data1.Recordset
.AddNew 'ajoute un nouveau
.Fields("CODE") = Code.text 'dans le champ CODE met ce qu'il y a dans code.text
.Fields("NOM") = Nom.text
.Fields("PRENOM") = Prenom.text
.Update 'Met a jour
End With

' 6-Le code ajoute maintenant dans la base de donnée

'*****************************************************************************
' ETAPE 3 : Lire un enregistrement
'*****************************************************************************

' 1-Créez un projet STANDARD (ou ENTREPRISE pour les heureux possesseur de cette
' version)

' 2-Ajoutez 3 TextBox nommée "CODE", "NOM", "PRENOM"

' 3-Creez le controle DATA
' Les propriétés suivantes sont à changer:

Connect = Access (si c'est une base ACCESS)
DatabaseName = C:\Ma base\base.mdb (Soit le chemin de votre Base de données)
(Il est préférable d'utiliser un chemin universel, comme App.path & "\mabase.mdb" : la base sera lue
dans le dossier du logiciel)

EOFAction = 3-Add New (Si on arrive à la fin des enregistrements, VB en crée un nouveau.)
RecordSource = CLIENTS (soit le nom de la table dans laquelle opérer)

' 4-Créez un bouton avec "LIRE" comme Caption (propriété Caption)

' 5-Double cliquez sur le bouton "LIRE" et tapez le code suivant

Code.text = Data1.Recordset.Fields("Code").Value
Nom.text = Data1.Recordset.Fields("Nom").Value
Prenom.text = Data1.Recordset.Fields("Prenom").Value

' 6-Les donnés sont mises dans les TextBox.

' NB: Les donnés placés dans le TextBox correspondent à la fiche en cours soit la fiche 1.
' Pour changer de fiche, ajoutez ceci au devant le code

'*****************************************************************************
' ETAPE 4 : Déplacement dans les Enregistrement
'*****************************************************************************

Data1.RecordSet.Move(x) 'soit x le numéro de la fiche à lire

' ou

Data1.RecordSet.MoveNext 'Va à l'enregistrement suivant

' ou

Data1.RecordSet.MovePrevious 'Va à l'enregistrement précedent

' ou

Data1.RecordSet.MoveFirst 'Va à l'enregistrement 1

' ou

Data1.RecordSet.MoveLast 'Va au dernier enregistrement

'*****************************************************************************
' ETAPE 5 : Gérer les erreurs de déplacement
'*****************************************************************************

'Lorsque l'on se déplace et qu'il n'y a qu'un seul enregistrement ou pas
'du tout, ou que l'on appelle l'enregistrement 60 alors qu'il en a seulement
'20, cela fait une erreur.
'Lorsque vous vous déplacez de X enregistrements, n'oubliez pas ce code

If X > Data1.RecordSet.RecordCount then
Exit sub
End if

'Si il n'y a qu'un seul enregistrement, vous ne pouvez pas vous déplacer, donc
'avant tout déplacement, testez comme suit le nombre de vos enregistrements

If Data1.RecordSet.RecordCount > 1 then
Data1.RecordSet.Move (x)
End if

'*****************************************************************************
' ETAPE 6 : Rechercher un enregistrement
'*****************************************************************************

' 1-Créez un projet STANDARD (ou ENTREPRISE pour les heureux possesseur de cette
' version)

' 2-Ajoutez 3 TextBox nommée "CODE", "NOM", "PRENOM"

' 3-Creez le controle DATA
' Les propriétés suivantes sont à changer:

' Connect = Access (si c'est une base ACCESS)
' DatabaseName = C:\Ma base\base.mdb (Soit le chemin de votre Base de données)
' EOFAction = 3-Add New (Si on arrive à la fin des enregistrements, VB en crée un ' nouveau.)
' RecordSource = CLIENTS (soit le nom de la table dans laquelle opérer)

' 4-Créez un bouton avec "RECHERCHER" comme Caption (propriété Caption)

' 5-Double cliquez sur le bouton "RECHERCHER" et tapez le code suivant
' (ici, on recherche par CODE, car il est différent pour chacun des enregistrement)

' 6-Tapez le code suivant (uniquement si Data1.RecordSetType = Dynaset ou Snapshot)
' (pour Data1.RecordSetType = Table, utiliser SEEK (voir manuel en ligne de VB))


Variable = "" & "CODE" & " = '" & code.text & "'"
'La ligne ci dessus met en forme la recherche sinon erreur

Data1.RecordSet.FindFirst Variable 'on recherche dans le champ CODE
'ce qu'il y a
'dans le TextBox CODE

Nom.text = Data1.Recordset.Fields("Nom").Value 'Apres, on lit les donnés
Prenom.text = Data1.Recordset.Fields("Prenom").Value

' NB: FindFirst place ce qu'il trouve comme enregistrement en cours
Si le code 1234 est recherché et qu'il se trouve dans l'enregistrement 115,
l'enregistrement en cours devient 115


'*****************************************************************************
' ETAPE 7 : Supprimer un enregistrement
'*****************************************************************************

' Il suffit de faire un autre bouton avec "SUPPRIMER" comme Caption
' et de mettre le code suivant

Data1.RecordSet.Delete
Data1.RecordSet.MoveNext

' NB: Cela supprime l'enregistrement en cours

'*****************************************************************************
' ETAPE 8 : Editer un enregistrement
'*****************************************************************************

' Il suffit de faire un autre bouton avec "EDITER" comme Caption
' et de mettre le code suivant

Data1.RecordSet.Edit
Data1.RecordSet.Fields("CODE") = Code.text
Data1.RecordSet.Fields("NOM") = Nom.text
Data1.RecordSet.Fields("PRENOM") = Prenom.text
Data1.RecordSet.Update

' NB: Cela à effet sur l'enregistrement en cours

'*****************************************************************************
' ETAPE 9 : Compter les enregistrements
'*****************************************************************************

' Il suffit de faire un autre bouton avec "COMPTER" comme Caption
' et de mettre le code suivant

Data1.RecordSet.MoveLast
MsgBox Data1.RecordSet.RecordCount 'Affiche le chiffre dans un message box

'*****************************************************************************
' ETAPE 10 : Eviter les erreurs de recherche
'*****************************************************************************
'Voici le code AVANT:

Variable = "" & "CODE" & " = '" & code.text & "'"
'La ligne ci dessus met en forme la recherche sinon erreur
'CODE = la table dans laquelle chercher
'code.text = le texte à chercher

Data1.RecordSet.FindFirst Variable 'on recherche dans le champ CODE
'ce qu'il y a
'dans le TextBox CODE

Nom.text = Data1.Recordset.Fields("Nom").Value 'Apres, on lit les donnés
Prenom.text = Data1.Recordset.Fields("Prenom").Value

'Il y a un inconvénient: Si on cherche "123" et qu'il n'existe pas, c'est la fiche
'en cours qui est affichée, soit l'enregistrement 1.
'Il suffit de mettre:

If Data1.RecordSet.NoMatch then
msgbox "Valeur introuvable"
exit sub
else
Nom.text = Data1.Recordset.Fields("Nom").Value 'Apres, on lit les donnés
Prenom.text = Data1.Recordset.Fields("Prenom").Value

'*****************************************************************************
' ETAPE 11 : Lister les enregistrements dans une Liste (Type Excel)
'*****************************************************************************

'Pour ceux qui l'ont, le controle MSflexGRID permet de lister des donnés
'comme sur une feuille Excel (Plus ou moins semblable, mais non éditable
directement)

'1-Insérez le contrôle et donnez lui les dimensions voulues
'2-Grace a la propriété COLS et ROWS, vous pouvez définir le nombre de colonnes
'(COLS) et de lignes (ROWS). Prenez en compte les bords gris, qui sont aussi des
'colonnes. La premiere cellule (celle du coin) est la cellule 0, celle juste après
'la même ligne à le numéro 1, et ainsi de suite, numéroté de gauche a droite
'ce systeme n'est pas très pratique, car on ne peut pas utiliser des coordonés
'(comme 0,0 / 1,5 / ...) Alors on va utiliser un code de mon cru pour calculer
'les coordonés d'une cellule :

'Dans un module

Public Function Coordones1(row As Integer, col As Integer) As Long
Coordones1 = row * Form1.Grid1.Cols + col
'Remplacez "Form1.Grid1.Cols" par le nom du controle (FORM1 = Feuille)
End Function

'NB, VOUS DEVEZ CREER AUTANT DE CODES QU'IL Y A DE GRILLES, NOMMEZ LES
'"Coordones2,3,4..." N'oubliez pas le "Coordones2= row *...."

'Pour dimensionner les colonnes, faites comme suit
'----------------------------------------------------
'Dans la form
Grid1.ColWidth(0) = 500 '500 TWIPS pour la COLONNE 0

'Pour mettre un titre aux colonnes, faites comme suit
'----------------------------------------------------

Grid1.TextArray(Coordones1(0, 3)) = "TEXTE"

'Pour lister, créez un nouveau PRIVATE SUB
'----------------------------------------------------
Dim i as integer 'Tout au dessus dans le code

Private Sub GridCharge()
On Error GoTo Erreur
Grid.Rows = 1 'enleve ce qui y'a déja
i = 0 'remet 0 dans i

If Data1.Recordset.RecordCount >= 1 Then 'Si plus qu'un enregistrement
Data1.Recordset.MoveFirst 'Va au premier enregistrement
End If

Do While Data1.Recordset.EOF = False 'Tant que ce n'est pas la fin des enregistrements

Grid.ColWidth(0) = 500 'Redimension (A ADAPTER)
Grid.ColWidth(1) = 1000 'IDEM
Grid.ColWidth(2) = 1000 'IDEM
Grid.ColWidth(3) = 5050 'IDEM
Grid.ColWidth(4) = 2500 'IDEM
Grid.TextArray(faIndex(0, 0)) = "N°" 'TITRES DES COLS (A ADAPTER)
Grid.TextArray(faIndex(0, 1)) = "Date de prêt"
Grid.TextArray(faIndex(0, 2)) = "Echéance"
Grid.TextArray(faIndex(0, 3)) = "Objet"
Grid.TextArray(faIndex(0, 4)) = "Emprunteur"

i = i + 1 'incrémenter i de 1

Grid.AddItem (i) 'Ajoute une ligne au GRID
Grid.TextArray(faIndex(i, 0)) = i '(A ADAPTER)
Grid.TextArray(faIndex(i, 1)) = Data1.Recordset.Fields("Date").Value
Grid.TextArray(faIndex(i, 2)) = Data1.Recordset.Fields("Echeance").Value
Grid.TextArray(faIndex(i, 3)) = Data1.Recordset.Fields("Objet").Value
Grid.TextArray(faIndex(i, 4)) = Data1.Recordset.Fields("Personne").Value
'ICI, i est le numéro de ligne dans le data grid


Data1.Recordset.MoveNext 'Change d'enregistrement
Loop 'Boucle (REMONTE A "DO")
Exit Sub 'SORTIE du SUB

Erreur: 'Si erreur
Grid.Rows = 1 'Vide les lignes
MsgBox "Erreur inatendue"
Exit Sub 'Sort
End Sub

'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
' NOTE : POUR RAFRAICHIR OU AFFICHER LA LISTE, Y SUFFIT D'APPELER
'LE SUB GridCharge. MAIS PAS DANS LE FORM LOAD, CELA FERAIT UNE ERREUR
'(Je ne sais pas pourquoi ?!) Alors, mettez un TIMER, interval 10, Enabled=TRUE
'et mettez ce code

Private Sub Timer1_Timer
GridCharge
Timer1.Enabled = false
End if

'Cela aura pour effet de charger la grille 10 MILLISECONDES après le prog
'A n'appeler que pour substituer a FORM LOAD qui ne marche pas
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

'*****************************************************************************
' ETAPE 12: RESOLUTION DES PROBLEMES DU SERVICE PACK 5
'*****************************************************************************
'Problèmes lors de l'installation du Service Pack 5. Un message d'erreur survient
'en disant qu'il n'a pas les bons DataAccess Library. Sur le CD, lancez MDAC_TYP.exe
'et suivez l'installation. Réessayez d'installer Service Pack 5, Ca devrait aller

'Problèmes avec le controle DATA de Visual Basic
'Certaines personnes pourraient avoir des problèmes avec ce controle
'Quand on veut l'insérer, il fait des erreurs (Dans le projet EXE ENTREPRISE)
'Il suffit d'ouvrir un autre VB en EXE STANDARD, insérer un controle DATA
'Faire Copier et Aller dans l'autre VB et faire COLLER (Un message peut apparaitre)
'Ca marche désormais.
'NOTE: Réinstaller VB ne sert à rien (a part si vous formattez)

'NOTE DE NOTE : Un service pack est censé enlever des BUGS et pas en RAJOUTER

'--------------------------------------
'--------------------------------------
'Voila, j'espere que vous trouverez tout ce qu'il vous faut, si vous avez des
'questions sur le VB, écrivez moi à Magidev@hotmail.com. Si j'en suis capable,
'je vous réponderez (peut être pas tout de suite car j'ai du travail).
'(www.magidev.be.tf)

'Entre temps, A+

'et bon WAZAAAAAAAcode (Comme NiX :-))

'VIVE VBfrance
'VIVE CodeS-SourceS.com
'VIVE LA COMMUNAUTE VBfrance
'VIVE NIX et son équipe
'VIVE LES PROGRAMMEURS
'VIVE Nix
'VIVE Les membres de VBfrance
'VIVE La compil
'VIVE AspFR
'VIVE LA BELGIQUE (une fois)

'A+

Source / Exemple :


ATTENTION VIEUX CODE
LISEZ PLUTOT LA SOURCE 5672 ET LE SQL (PLUS RAPIDE ET FACILE)

JE NE REPONDS PLUS AUX QUESTIONS SUR CETTE SOURCE PARCEQUE IL Y A QQ ERREURS
DEDANS ET JE NE SAIS PLUS COMMENT ON FAIT POUR UTILISER CES OBJETS VU QUE CA FAIT
DES LUSTRES QUE JE NE LES AIT PLUS UTILISE

LE SQL EST UNIVERSEL ET PLUS UTILISE - MERCI

'Voici une documentation qui vous permettera de vous débrouiller
'avec les bases de donnés. Ici, pas de zip, mais du code (pour
'changer de ceux qui ne mettent que des zip.) Ces infos sont indédites
'elles n'étaient pas dans VBFrance et vous explique pas à pas comment
'faire pour travailler avec les bases de donnés. Ce doc s'adresse à tous.
'donc, les dinosaures de la programmation, faut pas croire que je vous prend
'pour des cons, j'explique aux autres. Et pour l'ORTOGRAF, JE SUIS PAS UN DICO
'Alors, faites comme si vous aviez pas vu les fautes, merci.

'>ETAPE 0 : UN BUG, oui, UN BOGUE, NON !!! (Coup de Geule)

'>ETAPE 1 : Créer la base
'>ETAPE 2 : Ajouter dans la base grâce à VB
'>ETAPE 3 : Lire un enregistrement 
'>ETAPE 4 : Se déplacer dans les enregistrements
'>ETAPE 5 : Eviter les erreurs de déplacements
'>ETAPE 6 : Gérer les erreurs de déplacement
'>ETAPE 7 : Supprimer un enregistrement
'>ETAPE 8 : Editer un enregistrement
'>ETAPE 9 : Compter les enregistrements
'>ETAPE 10: Eviter les erreurs de recherche
'>ETAPE 11: Lister les enregistrements dans une Liste (Type Excel)
'>ETAPE 12: RESOLUTION DES PROBLEMES DU SERVICE PACK 5

'******************************************************************************
'			ETAPE 0 : UN BUG, oui, UN BOGUE, NON !!!
'*******************************************************************************

'Avant de commencer, je voudrais raler un peu
'Partout, même a la TV, on DIT BOGUE pour une erreur d'ordi,
'mais cela n'a pas de sens. Pourquoi toujours tout françiser ?
'C'est un BUG, ce qui veut dire INSECTE en anglais
'Du temps de l'ENIAC et autres dinosaures, les papillons
'allaient se griller dans les circuits (D'ou le mot BUG) et 
'provoquaient des erreurs de calculs.
'mais nos amis français et cannadien ont dit "BOGUE"
'ce que désigne une envellope de MARON ou de CHATAIGNE
'ce qui dénue de tout sens le mot BOGUE
'Si vous ne voulez pas dire BUG, dites INSECTE, mais pas BOGUE

'Mafois, le jour ou vous verrez une CHATAIGNE OU UN MARRON volant venir
'se griller dans un PC, alors vous pourrez dire BOGUE, mais tant que ca arrive pas
'je dis NON, PAS BOGUE, MAIS BUG ou INSECTE (ou ERREUR DE CALCUL)

'Merci de m'avoir écouté (enfin,...lu)
'Pour réagir, n'hésitez pas : MAGIDEV@hotmail.com

'******************************************************************************
'				ETAPE 1 : CREER LA BASE
'*******************************************************************************

' 1-Créez, dans une base de donnée Access, une nouvelle table (Mode création)

' 2-Le premier champ sera "CODE", format TEXTE , 10 caratères

' 3-Le second champ sera "NOM", format TEXTE, 50 caractères

' 4-Le troisième champ sera "PRENOM", format TEXTE, 50 caractères

' 5-Créez une clef primaire pour "CODE". Pour créer une clef primaire,
'   faites un clic droit sur le petit carré gris à coté du nom du champ
'   et choisisez "CLEF PRIMAIRE". Une fois cela fait, cliquez la croix
'   de fermeture. Nommez votre table "CLIENTS"

' 6-Si vous avez Access 97, allez directement à l'étape 2
' 7-Si vous avez le pack de mise à jour Visual Basic Service Pack 5 allez en 9

' 8-Si vous avez Access 2000, il faut convertir la base de donnée
'   au format Access 97, car votre VB ne lira pas le format 2000
'   Cliquez sur le menu "OUTILS", puis sur "UTILITAIRES DE BASE DE DONNEES"
'   puis sur "CONVERTIR UNE BASE DE DONNEE", 
'   puis sur "A LA VERSION PRECEDENTE D'ACCESS"
'   Tapez un nom de fichier, enregistrez et fermez Access

'9-Si vous avez installé le SERVICE PACK 5, vous pouvez utiliser les bases 
'Access 2000, mais si cela ne fonctionne pas, revenez à l'étape 8

'*****************************************************************************
'		   ETAPE 2 : Ajouter dans la base grace à VB
'*****************************************************************************

' 1-Créez un projet STANDARD (ou ENTREPRISE pour les heureux possesseur de cette
'   version)

' 2-Ajoutez 3 TextBox nommée "CODE", "NOM", "PRENOM"

' 3-Creez le controle DATA
'   Les propriétés suivantes sont à changer:
    
   Connect = Access (si c'est une base ACCESS)
   DatabaseName = C:\Ma base\base.mdb (Soit le chemin de votre Base de donnés)
   EOFAction = 3-Add New (Si on arrive à la fin des enregistrements, VB en crée un 
   nouveau.)
   RecordSource = CLIENTS (soit le nom de la table dans laquelle opérer)

' 4-Créez un bouton avec "AJOUTER" comme Caption (propriété Caption)

' 5-Double cliquez sur le bouton "AJOUTER" et tapez le code suivant

  With Data1.Recordset
            .AddNew  'ajoute un nouveau
            .Fields("CODE") = Code.text 'dans le champ CODE met ce qu'il y a dans code.text
	    .Fields("NOM") = Nom.text
            .Fields("PRENOM") = Prenom.text
            .Update 'Met a jour
  End With

' 6-Le code ajoute maintenant dans la base de donnée

'*****************************************************************************
'		   ETAPE 3 : Lire un enregistrement
'*****************************************************************************

' 1-Créez un projet STANDARD (ou ENTREPRISE pour les heureux possesseur de cette
'   version)

' 2-Ajoutez 3 TextBox nommée "CODE", "NOM", "PRENOM"

' 3-Creez le controle DATA
'   Les propriétés suivantes sont à changer:
    
   Connect = Access (si c'est une base ACCESS)
   DatabaseName = C:\Ma base\base.mdb (Soit le chemin de votre Base de données)
	(Il est préférable d'utiliser un chemin universel, comme App.path & "\mabase.mdb" : la base sera lue
	dans le dossier du logiciel)

   EOFAction = 3-Add New (Si on arrive à la fin des enregistrements, VB en crée un nouveau.)
   RecordSource = CLIENTS (soit le nom de la table dans laquelle opérer)

' 4-Créez un bouton avec "LIRE" comme Caption (propriété Caption)

' 5-Double cliquez sur le bouton "LIRE" et tapez le code suivant

    Code.text = Data1.Recordset.Fields("Code").Value
    Nom.text = Data1.Recordset.Fields("Nom").Value
    Prenom.text = Data1.Recordset.Fields("Prenom").Value

' 6-Les donnés sont mises dans les TextBox.

' NB: Les donnés placés dans le TextBox correspondent à la fiche en cours soit la fiche 1.
' Pour changer de fiche, ajoutez ceci au devant le code

'*****************************************************************************
'               ETAPE 4 : Déplacement dans les Enregistrement
'*****************************************************************************
  
  Data1.RecordSet.Move(x) 'soit x le numéro de la fiche à lire
  
' ou

  Data1.RecordSet.MoveNext 'Va à l'enregistrement suivant
  
' ou

  Data1.RecordSet.MovePrevious 'Va à l'enregistrement précedent

' ou

  Data1.RecordSet.MoveFirst 'Va à l'enregistrement 1

' ou

  Data1.RecordSet.MoveLast 'Va au dernier enregistrement

'*****************************************************************************
'		   ETAPE 5 : Gérer les erreurs de déplacement
'*****************************************************************************

'Lorsque l'on se déplace et qu'il n'y a qu'un seul enregistrement ou pas
'du tout, ou que l'on appelle l'enregistrement 60 alors qu'il en a seulement
'20, cela fait une erreur.
'Lorsque vous vous déplacez de X enregistrements, n'oubliez pas ce code

If X > Data1.RecordSet.RecordCount then
Exit sub
End if

'Si il n'y a qu'un seul enregistrement, vous ne pouvez pas vous déplacer, donc
'avant tout déplacement, testez comme suit le nombre de vos enregistrements

If Data1.RecordSet.RecordCount > 1 then
Data1.RecordSet.Move (x)
End if

'*****************************************************************************
'		   ETAPE 6 : Rechercher un enregistrement
'*****************************************************************************

' 1-Créez un projet STANDARD (ou ENTREPRISE pour les heureux possesseur de cette
'   version)

' 2-Ajoutez 3 TextBox nommée "CODE", "NOM", "PRENOM"

' 3-Creez le controle DATA
'   Les propriétés suivantes sont à changer:
    
'   Connect = Access (si c'est une base ACCESS)
'   DatabaseName = C:\Ma base\base.mdb (Soit le chemin de votre Base de données)
'   EOFAction = 3-Add New (Si on arrive à la fin des enregistrements, VB en crée un '   nouveau.)
'   RecordSource = CLIENTS (soit le nom de la table dans laquelle opérer)

' 4-Créez un bouton avec "RECHERCHER" comme Caption (propriété Caption)

' 5-Double cliquez sur le bouton "RECHERCHER" et tapez le code suivant
'   (ici, on recherche par CODE, car il est différent pour chacun des enregistrement)

' 6-Tapez le code suivant (uniquement si Data1.RecordSetType = Dynaset ou Snapshot)
'   (pour Data1.RecordSetType = Table, utiliser SEEK (voir manuel en ligne de VB))

    
  Variable = "" & "CODE" & " = '" & code.text & "'"  
  'La ligne ci dessus met en forme la recherche sinon erreur
  
  Data1.RecordSet.FindFirst Variable 'on recherche dans le champ CODE 
                                               'ce qu'il y a
                                               'dans le TextBox CODE

  Nom.text = Data1.Recordset.Fields("Nom").Value 'Apres, on lit les donnés
  Prenom.text = Data1.Recordset.Fields("Prenom").Value

' NB: FindFirst place ce qu'il trouve comme enregistrement en cours
      Si le code 1234 est recherché et qu'il se trouve dans l'enregistrement 115,
      l'enregistrement en cours devient 115
      

'*****************************************************************************
'		   ETAPE 7 : Supprimer un enregistrement
'*****************************************************************************

' Il suffit de faire un autre bouton avec "SUPPRIMER" comme Caption
' et de mettre le code suivant

  Data1.RecordSet.Delete
  Data1.RecordSet.MoveNext

' NB: Cela supprime l'enregistrement en cours

'*****************************************************************************
'		   ETAPE 8 : Editer un enregistrement
'*****************************************************************************

' Il suffit de faire un autre bouton avec "EDITER" comme Caption
' et de mettre le code suivant

  Data1.RecordSet.Edit
  Data1.RecordSet.Fields("CODE") = Code.text
  Data1.RecordSet.Fields("NOM") = Nom.text
  Data1.RecordSet.Fields("PRENOM") = Prenom.text
  Data1.RecordSet.Update

' NB: Cela à effet sur l'enregistrement en cours

'*****************************************************************************
'		   ETAPE 9 : Compter les enregistrements
'*****************************************************************************

' Il suffit de faire un autre bouton avec "COMPTER" comme Caption
' et de mettre le code suivant

  Data1.RecordSet.MoveLast
  MsgBox Data1.RecordSet.RecordCount 'Affiche le chiffre dans un message box

'*****************************************************************************
'		   ETAPE 10 : Eviter les erreurs de recherche
'***************************************************************************** 
'Voici le code AVANT:

  Variable = "" & "CODE" & " = '" & code.text & "'"  
  'La ligne ci dessus met en forme la recherche sinon erreur
  'CODE = la table dans laquelle chercher
  'code.text = le texte à chercher
  
  Data1.RecordSet.FindFirst Variable 'on recherche dans le champ CODE 
                                               'ce qu'il y a
                                               'dans le TextBox CODE

  Nom.text = Data1.Recordset.Fields("Nom").Value 'Apres, on lit les donnés
  Prenom.text = Data1.Recordset.Fields("Prenom").Value

'Il y a un inconvénient: Si on cherche "123" et qu'il n'existe pas, c'est la fiche
'en cours qui est affichée, soit l'enregistrement 1.
'Il suffit de mettre:

 If Data1.RecordSet.NoMatch then
 msgbox "Valeur introuvable"
 exit sub 
 else
 Nom.text = Data1.Recordset.Fields("Nom").Value 'Apres, on lit les donnés
 Prenom.text = Data1.Recordset.Fields("Prenom").Value

'*****************************************************************************
'     ETAPE 11 : Lister les enregistrements dans une Liste (Type Excel)
'***************************************************************************** 

'Pour ceux qui l'ont, le controle MSflexGRID permet de lister des donnés
'comme sur une feuille Excel (Plus ou moins semblable, mais non éditable 
directement)

'1-Insérez le contrôle et donnez lui les dimensions voulues
'2-Grace a la propriété COLS et ROWS, vous pouvez définir le nombre de colonnes
'(COLS) et de lignes (ROWS). Prenez en compte les bords gris, qui sont aussi des
'colonnes. La premiere cellule (celle du coin) est la cellule 0, celle juste après
'la même ligne à le numéro 1, et ainsi de suite, numéroté de gauche a droite
'ce systeme n'est pas très pratique, car on ne peut pas utiliser des coordonés 
'(comme 0,0 / 1,5 / ...) Alors on va utiliser un code de mon cru pour calculer
'les coordonés d'une cellule :

'Dans un module

Public Function Coordones1(row As Integer, col As Integer) As Long
Coordones1 = row * Form1.Grid1.Cols + col 
'Remplacez "Form1.Grid1.Cols" par le nom du controle (FORM1 = Feuille)
End Function

'NB, VOUS DEVEZ CREER AUTANT DE CODES QU'IL Y A DE GRILLES, NOMMEZ LES
'"Coordones2,3,4..." N'oubliez pas le "Coordones2= row *...."

'Pour dimensionner les colonnes, faites comme suit
'----------------------------------------------------
'Dans la form
Grid1.ColWidth(0) = 500 '500 TWIPS pour la COLONNE 0

'Pour mettre un titre aux colonnes, faites comme suit
'----------------------------------------------------

Grid1.TextArray(Coordones1(0, 3)) = "TEXTE"

'Pour lister, créez un nouveau PRIVATE SUB
'----------------------------------------------------
Dim i as integer 'Tout au dessus dans le code

Private Sub GridCharge()
On Error GoTo Erreur
Grid.Rows = 1 		'enleve ce qui y'a déja
i = 0 			'remet 0 dans i

If Data1.Recordset.RecordCount >= 1 Then 'Si plus qu'un enregistrement
   Data1.Recordset.MoveFirst 'Va au premier enregistrement
End If

Do While Data1.Recordset.EOF = False 'Tant que ce n'est pas la fin des enregistrements

Grid.ColWidth(0) = 500 'Redimension (A ADAPTER)
Grid.ColWidth(1) = 1000 'IDEM
Grid.ColWidth(2) = 1000 'IDEM
Grid.ColWidth(3) = 5050 'IDEM
Grid.ColWidth(4) = 2500 'IDEM
Grid.TextArray(faIndex(0, 0)) = "N°" 'TITRES DES COLS (A ADAPTER)
Grid.TextArray(faIndex(0, 1)) = "Date de prêt"
Grid.TextArray(faIndex(0, 2)) = "Echéance"
Grid.TextArray(faIndex(0, 3)) = "Objet"
Grid.TextArray(faIndex(0, 4)) = "Emprunteur"

i = i + 1 'incrémenter i de 1

    Grid.AddItem (i) 'Ajoute une ligne au GRID
    Grid.TextArray(faIndex(i, 0)) = i '(A ADAPTER)
    Grid.TextArray(faIndex(i, 1)) = Data1.Recordset.Fields("Date").Value
    Grid.TextArray(faIndex(i, 2)) = Data1.Recordset.Fields("Echeance").Value
    Grid.TextArray(faIndex(i, 3)) = Data1.Recordset.Fields("Objet").Value
    Grid.TextArray(faIndex(i, 4)) = Data1.Recordset.Fields("Personne").Value
    'ICI, i est le numéro de ligne dans le data grid

    
    Data1.Recordset.MoveNext 'Change d'enregistrement
Loop 'Boucle (REMONTE A "DO")
Exit Sub 'SORTIE du SUB

Erreur: 'Si erreur
Grid.Rows = 1 'Vide les lignes
MsgBox "Erreur inatendue"
Exit Sub 'Sort
End Sub

'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
' NOTE : POUR RAFRAICHIR OU AFFICHER LA LISTE, Y SUFFIT D'APPELER
'LE SUB GridCharge. MAIS PAS DANS LE FORM LOAD, CELA FERAIT UNE ERREUR 
'(Je ne sais pas pourquoi ?!) Alors, mettez un TIMER, interval 10, Enabled=TRUE
'et mettez ce code

Private Sub Timer1_Timer
GridCharge
Timer1.Enabled = false
End if

'Cela aura pour effet de charger la grille 10 MILLISECONDES après le prog
'A n'appeler que pour substituer a FORM LOAD qui ne marche pas
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

'*****************************************************************************
'		ETAPE 12: RESOLUTION DES PROBLEMES DU SERVICE PACK 5
'***************************************************************************** 
'Problèmes lors de l'installation du Service Pack 5. Un message d'erreur survient
'en disant qu'il n'a pas les bons DataAccess Library. Sur le CD, lancez MDAC_TYP.exe
'et suivez l'installation. Réessayez d'installer Service Pack 5, Ca devrait aller

'Problèmes avec le controle DATA de Visual Basic
'Certaines personnes pourraient avoir des problèmes avec ce controle
'Quand on veut l'insérer, il fait des erreurs (Dans le projet EXE ENTREPRISE)
'Il suffit d'ouvrir un autre VB en EXE STANDARD, insérer un controle DATA
'Faire Copier et Aller dans l'autre VB et faire COLLER (Un message peut apparaitre)
'Ca marche désormais. 
'NOTE: Réinstaller VB ne sert à rien (a part si vous formattez)

'NOTE DE NOTE : Un service pack est censé enlever des BUGS et pas en RAJOUTER

'--------------------------------------
'--------------------------------------
'Voila, j'espere que vous trouverez tout ce qu'il vous faut, si vous avez des
'questions sur le VB, écrivez moi à Magidev@hotmail.com. Si j'en suis capable,
'je vous réponderez (peut être pas tout de suite car j'ai du travail). 
'(www.magidev.be.tf)

'Entre temps, A+

'et bon WAZAAAAAAAcode (Comme NiX :-))

'VIVE VBfrance
'VIVE CodeS-SourceS.com
'VIVE LA COMMUNAUTE VBfrance
'VIVE NIX et son équipe
'VIVE LES PROGRAMMEURS
'VIVE Nix
'VIVE Les membres de VBfrance
'VIVE La compil
'VIVE AspFR
'VIVE LA BELGIQUE (une fois)

'A+

Conclusion :


ATTENTION VIEUX CODE
LISEZ PLUTOT LA SOURCE 5672 ET LE SQL (PLUS RAPIDE ET FACILE)

JE NE REPONDS PLUS AUX QUESTIONS SUR CETTE SOURCE PARCEQUE IL Y A QQ ERREURS
DEDANS ET JE NE SAIS PLUS COMMENT ON FAIT POUR UTILISER CES OBJETS VU QUE CA FAIT
DES LUSTRES QUE JE NE LES AIT PLUS UTILISE

LE SQL EST UNIVERSEL ET PLUS UTILISE - MERCI

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.