begin process at 2008 05 13 14:40:34
1 171 111 membres
280 nouveaux aujourd'hui
13 959 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

TOUT SUR LES BASES ACCESS LE PLUS SIMPLE DU MONDE (VIEUX CODE) VOIR SOURCE 5672


Information sur la source

Catégorie :Base de Donnees Niveau : Débutant Date de création : 19/02/2002 Date de mise à jour : 03/12/2003 10:35:24 Vu : 42 700

Note :
9,41 / 10 - par 22 personnes
9,41 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (26)
Ajouter un commentaire et/ou une note

Description

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

  • 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)) = "" '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+
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
  • signaler à un administrateur
    Commentaire de farid91 le 20/02/2002 16:55:02

    Bien. Je pense que tu as vraiment mis du temp pour pouvoir faire tout ca.
    Dommage que tu utilise le contrôle data et non l'ADO mais bon c ton choix.

  • signaler à un administrateur
    Commentaire de Magidev le 26/02/2002 08:46:11

    J'en ai fait un aussi sur le SQL dans VB, y resemble celui

  • signaler à un administrateur
    Commentaire de DARKSIDIOUS le 23/02/2003 07:23:13 administrateur CS

    Vraiment bein présenté et complet, ca vaut 9/10.

    DARK SIDIOUS

  • signaler à un administrateur
    Commentaire de panthere le 03/04/2003 04:54:32

    Je veux pas pousser le bouchon trop loin lol mai t'a oublier les requete SQL :-)
    Oui je suis trop feignian pour le faire lol
    Nan je dec, ton source est très complet si tu mettait sa dedant sa eviterait que j'en ponde un source sur le site juste pour les requetes ;)
    Aller un chti effore pour avoir ma note lol;-)

  • signaler à un administrateur
    Commentaire de JOFFI le 10/04/2003 08:43:01

    c'est bien de penser aux autres, merci merci merci

  • signaler à un administrateur
    Commentaire de KaBabs le 19/05/2003 17:03:36

    Supposons qu'on veuille chercher à partir du Nom, alors que vas tu faire ?
    Je te proposerai l' ADO. Le contrôle ADO ou la programmation par automation avec la Librairie 2.1 fera la différence avec DAO que tu utilises.
    Je souhaite avoir une réponse..

  • signaler à un administrateur
    Commentaire de monceffnikov le 26/05/2003 14:10:46

    désolé de te réctifier, mais "BUG" en anglais désigne un cafard et le mot a été utilisé pour la première fois quand des cafards, en s'introduisant dans un ordinateur, on provoqué des court-circuits électriques et par conséquence la panne de l'ordinateur en question.
    et "BUG" ne signifie pas erreur de caclcul, mais disfonctionnement matérielle ou logicielle constaté sur un programme informatique ou sur un ordinateur et assimilé.
    sinon, pour les fautes d'orthographe, je dirais que j'ai rien vu.

  • signaler à un administrateur
    Commentaire de jpujol95 le 04/06/2003 14:59:35

    oui merci ca m'a rendu un grand service

  • signaler à un administrateur
    Commentaire de krisscool le 11/06/2003 11:41:39

    moi aussi c'est tres bien expliqué bravo a toi

  • signaler à un administrateur
    Commentaire de stagiaireiut le 11/06/2003 14:51:58

    franchement excellent!!!!!!!!!!! heureusement que y'a des gens comme toi pour aider les autres!!!!!!!!!!!!!!!!!!

  • signaler à un administrateur
    Commentaire de Nargzul le 12/06/2003 15:45:13

    Splendide et merci beaucoup... ps, pour le problème de compatibilité entre access et vb 2000, il te suffit de télécharger le service pack 5 de visual studio...

  • signaler à un administrateur
    Commentaire de Niconapo le 05/07/2003 13:40:35

    Merci,
    Mais pour les NB comme moi, comment créer on un controle DATA ??

  • signaler à un administrateur
    Commentaire de smasher81 le 27/09/2003 20:40:08

    Vraiment je dois te remercier!! Tu est le genre de personne qui devrait exister plus souvent!!

  • signaler à un administrateur
    Commentaire de lca94 le 02/10/2003 15:35:12

    super!

    mais j'ai un BOGUE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!




    boum! aie!
    ha, la mainetannt j'en ai un! en plein dans l'oeil droit! :)