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 : 45 366

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
 

Commentaires et avis

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! :)

signaler à un administrateur
Commentaire de lca94 le 02/10/2003 15:38:05

heu, je devrait plutot dire b)

signaler à un administrateur
Commentaire de Turakam le 15/10/2003 13:49:46

Vraiment Geniale !!!

Moi je met 10 car c'est tres bien expliquer et simple en plus

BRAVO !!!

signaler à un administrateur
Commentaire de juvamine le 11/11/2003 10:02:01

tu t'ai vraimant déchiré, félicitation!
malgré tout, tu montre une méthode (la dao) ki est peu portable...
je vous conseillerai plutos a tous, l'ado...gérée très bien par vb, et assez facile a mettre en place !
avec l'objet MS ADO Data Control, ou des choses du genre

voila
trè bien ko meme

++ juvamine

signaler à un administrateur
Commentaire de Xav88 le 29/11/2003 00:03:32

Salut je trouve ca super!!!
C'est sympa de penser aux débutants!!

@ + et vive vbfrance

signaler à un administrateur
Commentaire de Magidev le 03/12/2003 10:37:19

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 Magidev le 03/12/2003 10:38:50

POUR TOUT CONTACT : PAR MAIL

magidev@hotmail.com

PAS DE TITRE VIDE (FILTRÉ) ET METTEZ VBFrance devant le titre merci

signaler à un administrateur
Commentaire de lionel4 le 28/02/2004 13:23:00

EOFAction = 3 -Add New

Expected : End of statement

La faut m'expliquer, les autres trucs chui arriver a les corriger mais ca je calle help plz.

signaler à un administrateur
Commentaire de mephisto2106 le 19/04/2004 14:18:42

comment je fais pour faire mon programme en c tout en recuperant la base de donnees. J'ai un projet et je ne connais en base de donnees. A l'aide

signaler à un administrateur
Commentaire de individis-bis le 29/04/2004 20:53:36

Hi...
Du temps de l'ENIAC comme tu dis, les papillons et autres insectes n'allaient certes pas se griller dans les circuits (je suppose que tu fais référence à circuits intégrés), ils n'existaient pas, mais plutot à la chaleur dégagée par les lampes (des diodes en fait).
C'est tout... ceci simplement pour préciser ton info.

signaler à un administrateur
Commentaire de salu18 le 23/07/2005 12:22:45

bonjour
je cherche a transfomer des chiffres en lettre sur access 2000
merci d'avance
mon e'mail est : etresolo@yahoo.fr
a bien tot

signaler à un administrateur
Commentaire de ab44 le 28/09/2005 15:34:29

salut a tous es t-il possible d'enrengistrer d'éditer de supprimer... sur une base acess sur un serveur ?

répondez moi par mp de vbfrance merci

signaler à un administrateur
Commentaire de FENETRES le 20/12/2005 17:11:07

Si il est effectivement possible de dissocier la partie base de données des IHM, le l'application Access n'est pas adaptée pour servir de serveur de données. L'absence de tolérance de panne (serveur de fichiers) limite son emploi et l'empêche d'accéder à un statut semi-professionnel. Par contre, c'est un excellent outil pour la création rapide de prototypes.

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,125 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.