begin process at 2012 02 12 04:02:49
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Base de Donnees

 > TOUTES LES BASES SUR LES BASES DE DONNES ET LE SQL

TOUTES LES BASES SUR LES BASES DE DONNES ET LE SQL


 Information sur la source

Note :
8,83 / 10 - par 18 personnes
8,83 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Base de Donnees Niveau :Initié Date de création :26/02/2002 Date de mise à jour :16/01/2003 11:27:17 Vu :33 284

Auteur : Magidev

Ecrire un message privé
Site perso
Commentaire sur cette source (29)
Ajouter un commentaire et/ou une note

 Description

ATTENTION NOUVELLE VERSION PRESQUE TERMINEE
(Le 16/01/2003) JE LA POSTERAI DANS QUELQUES JOURS
NOUVELLE VERSION EN HTML (Comme un site complet) QUI SERA DISPONIBLE DANS UN ZIP. MAIS CETTE VERSION RESTERA QUAND MÊME DISPONIBLE

'************************************* **********************
' UTILISER LES BASES DE DONNES EN VB SANS SOUCIS
'                   GRACE AUX REQUETES SQL
'********************************************* **************

'ETAPE 0 > MISE EN GARDE ET PREREQUIS
'ETAPE 1 > CREER LA BASE ACCESS
'ETAPE 2 > AJOUTER LA REFERENCE SQL A VISUAL BASIC
'ETAPE 3 > CONNECTION A LA BASE DE DONNES
'ETAPE 4 > AJOUTER DANS LA BASE DE DONNES
'ETAPE 5 > CREER LA FONCTION REINDEX
'ETAPE 6 > EDITER UN ENREGISTREMENT
'ETAPE 7 > SUPPRIMER UN ENREGISTREMENT
'ETAPE 8 > AFFICHER UN SEUL ENREGISTREMENT CHOISI
'ETAPE 9 > AFFICHER TOUS LES ENREGISTREMENTS DANS UN LISTE
'ETAPE 10> AFFICHER LES ENREGISTREMENTS DANS LA LISTE SUIVANT UN CRITERE
'ETAPE 11> CREER UNE NOUVELLE TABLE
'ETAPE 12> SUPPRIMER UNE TABLE
'ETAPE 13> AJOUTER UN CHAMP
'ETAPE 14> SUPPRIMER UN CHAMP
'ETAPE 15> FERMER LA CONNECTION A LA BASE
'ETAPE 16> AVANTAGES SQL / Composant DATA
'ETAPE 17> CE TUTORIAL...


'NOTE : Ce document est destiné tant aux utilisateurs novices que confirmés
'donc, il est probable que vous sachiez déja manier certaines fonctions
'expliqués ici, mais c'est pour que tout le monde puisse suivre. d'autre part
'je suis pas un dictionnaire ni un précis de grammaire, alors, désolé. Si vous
'avez des plaintes à faire, faites les a Microsoft pour qu'il mettent
'un correcteur d'ORTHOGRAPHE DANS NOTEPAD (Pour info, je connais Word, mais c'est
'chiant pour le texte sur VBfrance :-) )

'PREREQUIS :
'Pour pouvoir effectuer les opérations qui suivent, il vous faut:

'-Microsoft Access 97 ou 2000
'ou
'-Microsoft SQL Server 6 ou 7
'ou
'-Un logiciel compatible pour les bases de donnés
'et
'-Microsoft Visual Basic (STANDARD ou ENTREPRISE)

'AVANT DE CONTINUER :
'--------------------
'Recherchez le fichier le plus récent de MDAC_TYP.exe ou MDAC_TYPfr.exe
',soit sur le CD-ROM de Visual Basic ou sur le site Web de microsoft à l'adresse
'www.microsoft.fr/vbasic et installez-le, ces composants vont nous servir.
'(LE PACKAGE QUE VOUS INSTALLEZ DOIT ETRE LIVRE AUX CLIENTS AVEC L'APPLICATION)

'ATTENTION : Microsoft Access 2000 :
'-----------------------------------
'Visual Basic 5 et 6 ne digerent pas le format ACCESS 2000 pour les requetes SQL, donc
'pour plus de facilité, on utilisera le format 97

'POUR EFFECTUER LA CONVERSION 2000>97, enregistrez la base aux format 2000
'(GARDEZ LE POUR POUVOIR MODIFIER LES TABLES, LES CHAMPS,...)
'Le format 97 une fois exporté n'est plus modifiable en ACCESS 2000.

'Menu : Outils/Utilitaires de base de donnés/Convertir la base de donnés/à la version précédent de la base Access.

'!!!!!!!!!!!!!!!!!!!!
'QUAND VOUS OUVREZ LA BASE AU FORMAT 97 DANS ACCESS 2000,
'CHOISISSEZ IMPERATIVEMENT "VALIDER UNE BASE DE DONNEE" dans la
'question qui vous est posé.
'Vous ne pourrez pas modifier la structure (Tables, ...) Mais pourrez toujours ajouter ou
'supprimer des enregistrements.
'!!!!!!!!!!!!!!!!!!!!

'@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@
'   ETAPE 1
'    CREER LA BASE ACCESS
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

'1-Lancez MS Access (97 ou 2000) et créez une nouvelle base
'2-Nommez la base "DB2000" ce qui forme le fichier DB2000.mdb
'3-Créez une nouvelle TABLE "En mode création"
'4-Creez les champs suivant:

'NOM TYPE TAILLE
'------------------ ---------------------------------------------
'AUT O NumeroAuto /
'INDEX Texte 4
'NOM Texte 50
'PRENOM Texte 50
'VILLE Texte 50
'TE LEPHONE Texte 50
'----------------------------- ----------------------------------
'5-Effectuez un clic droit sur la case grise de la ligne "AUTO"
'  Dans le menu qui apparait, cliquez sur Clé Primaire
'6-Fermez la table à l'aide de la croix (X) et enregistrez la sous le nom
'  CLIENTS
'7-Allez dans le menu
'  Outils/Utilitaires de base de donnés/Convertir la base de donnés/à la version précédent de la base Access.
'8-Nommez la base 97 avec le nom "DB97" et fermez ACCESS

'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'   ETAPE 2
'    AJOUTER LA REFERENCE SQL A VISUAL BASIC
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

'Avant de pouvoir utiliser les requêtes SQL, il faut ajouter la référence à
'Visual basic.

'1-Lancez Visual Basic et créez un nouveau projet (EXE STANDARD OU ENTREPRISE)
'2-Cliquez sur Projet puis sur Références...
'3-Dans la fenêtre, cherchez la ligne "Microsoft DAO 2.5/3.5 COMPATIBILITY LIBRARY"
'4-Cochez la et cliquez sur OK

'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'   ETAPE 3
'         CONNECTION A LA BASE DE DONNES
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

'Quand on utilise une connection SQL, il faut se connecter à la base
'de donnés :

'On va créer des variables publiques qui contiendrons le chemin et la table

'Pour le chemin de la base

  Public db As Database

'Pour les tables à lire dans la base

  Public rs As Recordset

'Pour les chaines sql

  Public sql As String

'Ensuite, sur un bouton connection ou dans le FORM_LOAD

  Set db = OpenDatabase(App.Path & "\DB97.mdb")

'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'   ETAPE 4
'         AJOUTER DANS LA BASE DE DONNES
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

'On va créer 4 Boites de texte (avec un nom au-dessus (LABEL))
'1° = NOM
'2° = PRENOM
'3° = VILLE
'4° = TELEPHONE
'Et aussi un bouton AJOUTER

'Dans le code du bouton, on met :

'sql = "select * from CLIENTS" ' On séléctionne tous les champs de la table CLIENTS
'Set rs = db.OpenRecordset(sql, dbOpenDynaset) ' ici on est bien en mode écriture dbOpenDynaset

'rs.AddNew ' on va ajouter un enregistrement à notre recordset
'rs.Fields("nom") = nom.Text ' Le champ nom = le contrôle Text1
'rs.Fields("prenom") = prenom.Text
'rs.Fields("ville") = ville.Text
'rs.Fields("telephone") = telephone.text

'rs.Update 'Une fois les valeurs définies, on met à jour notre Recordset
'rs.Close

'???????????????????
'LE CHAMP "INDEX" QUE L'ON A CREE SERT A TENIR A JOUR LE NOMBRE D'ENREGISTREMENTS
'CAR AUTO NUMEROTE 1,2,3,4,5,6; mais si on supprime le 5, cela donne 1,2,3,4,6. Le
'champ INDEX sera réactualisé à chaque opération par une fonction ReIndex, qui va
'renuméroter tous les enregistrements de 1 à X enregistrements. (C'est utilisé pour supprimer ou modifier
'les enregistrements plus facilement que par AUTO)
'???????????????????

'@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@
'   ETAPE 5
'         CREER LA FONCTION ReINDEX
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

'????????????? ??????
'LE CHAMP "INDEX" QUE L'ON A CREE SERT A TENIR A JOUR LE NOMBRE D'ENREGISTREMENTS
'CAR AUTO NUMEROTE 1,2,3,4,5,6; mais si on supprime le 5, cela donne 1,2,3,4,6. Le
'champ INDEX sera réactualisé à chaque opération par une fonction ReIndex, qui va
'renuméroter tous les enregistrements de 1 à X enregistrements. (C'est utilisé pour supprimer ou modifier
'les enregistrements plus facilement que par AUTO)
'???????????????????

'Faites un nouveau SUB (Public ou Private) nommé ReINDEX
'et mettez y ceci :

Private sub ReINDEX()

Dim i As Integer
i = 0
sql = "select * from CLIENTS"
Set rs = db.OpenRecordset(sql, dbOpenDynaset)

While Not rs.EOF
rs.Edit
i = i + 1
rs.Fields("INDEX") = i
rs.Update
rs.MoveNext

Wend
rs.Close

End sub

'!!!!!!!!!!!
'VOUS DEVEZ UTILISER ReINDEX après toute OPERATION DANS LA BASE (Suppression, Edition,...)
'CELA PERMET DE MODIFIER OU SUPPRIMER UN ENREGISTREMENT PLUS VITE, VOYEZ PLUTOT
'!!!!!!!!!!!

'@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'   ETAPE 6
'            EDITER UN ENREGISTREMENT
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

'Imagin ez que vous voulez editer l'enregistrement dont le numéro est donne par
'l'utilisateur à l'aide d'une boite de texte nommé "NUMERO":

'Sur un bouton:

sql = "select * from CLIENTS Where INDEX = " & NUMERO.text
Set rs = db.OpenRecordset(sql, dbOpenDynaset)

While Not rs.EOF
rs.Edit
rs.Fields("Nom") = Text1.text
rs.Fields("Prenom") = Text2.text
rs.Fields("Ville") = Text3.text
rs.Fields("Telephone") = Text4.text
rs.Update
rs.MoveNext

Wend
rs.Close

' !!!!!!!!!!!!!!
'ATTENTION = TOUS LES CHAMPS AYANT L'INDEX CONTENU DANS NUMERO SERONT EDITE, VEILLEZ TOUJOURS
'A REINDEX LA BASE AVANT DE MODIFIER LES ENREGISTREMENTS
'!!!!!!!!!!!!!!

'@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@
'   ETAPE 7
'            SUPPRIMER UN ENREGISTREMENT
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

sql = "DELETE * FROM Employes WHERE Auto='" & Valeur.text & "'"
db.Execute sql

'!!!!!!!!!!!!!!
'ATTENTION = TOUS LES CHAMPS AYANT L'INDEX CONTENU DANS NUMERO SERONT SUPPRIMES, VEILLEZ TOUJOURS
'A REINDEX LA BASE AVANT DE SUPPIMER DES ENREGISTREMENTS
'!!!!!!!!!!!!!!

'IMPORTANT = QUAND ON UTILISE "WHERE %Champ%=" il faut mettre ' (apostrophe) entre la valeur
'-->WHERE %Champ% = 'Jean'

'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'   ETAPE 8
'           AFFICHER UN SEUL ENREGISTREMENT
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

sql = "select * from Employes where auto='" & Valeur.text &  "'"

Set rs = db.OpenRecordset(sql, dbOpenSnapshot)
Text1.Text = rs.Fields("NOM")
Text2.Text = rs.Fields("FONCTION")
Text3.Text = rs.Fields("VILLE")

'IMPORTANT = QUAND ON UTILISE "WHERE %Champ%=" il faut mettre ' (apostrophe) entre la valeur
'-->WHERE %Champ% = 'Jean'

'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'   ETAPE 9
'    AFFICHER TOUS LES ENREGISTREMENTS DANS UN LISTE
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

'On va faire une liste COMBO appelée COMBO1 et on va lister tous les enregistrements

sql = "select * from Employes"

Set rs = db.OpenRecordset(sql, dbOpenSnapshot)


Combo1.Clear ' Vide le combo



While Not rs.EOF 'BOUCLE Tant Que"

Combo1.AddItem rs.Fields("Nom") & rs.Fields("VILLE")

rs.MoveNext 'ensuite on passe à l'enregistrement suivant qui se trouve dans notre Recordset

Wend ' Fin de la boucle Tant que
' On sortira de cette boucle lorsque tous les enregistrement de notre Recordset aurront été lu.

rs.Close ' Prenez l'habitude de fermer votre Recordset pour libérer de l'espace mémoire

Combo1.ListIndex = -1 'Pour afficher un combo vide.

'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'   ETAPE 10
' AFFICHER LES ENREGISTREMENTS DANS LA LISTE SUIVANT UN CRITERE
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

'On va faire une liste COMBO appelée COMBO1 et on va lister tous les enregistrements

sql = "select * from Employes where NOM ='" & Nom.Text & "'"

Set rs = db.OpenRecordset(sql, dbOpenSnapshot)


Combo1.Clear ' Vide le combo



While Not rs.EOF 'BOUCLE Tant Que"

Combo1.AddItem rs.Fields("Nom") & " " & rs.Fields("VILLE")

rs.MoveNext 'ensuite on passe à l'enregistrement suivant qui se trouve dans notre Recordset

Wend ' Fin de la boucle Tant que
' On sortira de cette boucle lorsque tous les enregistrement de notre Recordset aurront été lu.

rs.Close ' Prenez l'habitude de fermer votre Recordset pour libérer de l'espace mémoire

Combo1.ListIndex = -1 'Pour afficher un combo vide.

'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'   ETAPE 11
'                 CREER UNE NOUVELLE TABLE
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'On va créer une table nommée CLIENT dont les champs seront NOM, VILLE

sql = "CREATE TABLE Clients3 (Prenom TEXT (5), Ville TEXT (5))"
db.Execute sql

'(5)= Le nombre de caractère MAX dans le champ (Pour TEXT uniquement)

'TEXT = Le type de donnés

'La table CLIENTS3 Est crée


'LES POSSIBILITE DE TYPE:
'-------------------------
'NOM TAILLE VA LEUR
'******************************************** ***
'BINARY 1 octet/caractère /
'BIT 1 octet YES/NO
'BYTE 1 octet Valeur entre 0 et 255
'COUNTER 4 octets NumeroAUTO
'CURRENCY 8 octets - 922 337 203 685 477,5808 et 922 337 203 685 477,5807.
'DATETIME 8 octets Date ou Heure entre 100 et 9999 (années)
'GUID 128 bits /
'SINGLE 4 octets Virgule flotante simple précision
'DOUBLE 8 octets double précision
'SHORT 2 octets -32 768 et 32 767
'LONG 4 octets - 2 147 483 648 et 2 147 483,647
'LONGTEXT 1 octet/caractère de 0 à 1,2 GO
'LONGBINARY Au besoin de 0 à 1,2 GO
'TEXT 1 octet par caractère   de 0 à 255 caractères

'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'   ETAPE 12
'    SUPPRIMER UNE TABLE
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'On va supprimer la table CLIENTS

sql = "DROP TABLE Clients"
db.Execute sql

'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'   ETAPE 13
'             AJOUTER UN CHAMP DANS UNE TABLE
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'On va ajouter le champ Nom de type TEXT de longueur 10

sql = "ALTER TABLE Clients ADD COLUMNS Nom TEXT (10)"
db.Execute sql

'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'   ETAPE 14
'            SUPPRIMER UN CHAMP DANS UNE TABLE
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'On va supprimer le champ NOM

sql = "ALTER TABLE Clients DROP COLUMNS Nom"
db.Execute sql

'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'   ETAPE 15
'            FERMER LA CONNECTION A LA BASE
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

'Quand on quitte le programme, on ferme la connection à la base

db.close

'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'   ETAPE 16
'            AVANTAGES DE SQL / Composants DATA
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

-Rapidite
-Moins D'erreurs
-Plus Facile pour les grosses manipulations
-Ajouter/Supprimer une table
-Ajouter/Supprimer des champs
-Pas de gros composants à transporter

!!!!!!!
NOTE : Utiliser MySQL ou Microsoft SQL Server pour faire de meilleurs
bases de donnés (Jusqu'a 1 TERA-OCTET) contrer 2 GO pour la base access
en plus, les bases sont plus propres.

'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'   ETAPE 17
'                     CE TUTORIAL...
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

'CE TUTORIAL PEUT ÊTRE DISTRIBUE GRATUITEMENT SANS AVOIR SUBI DES MODIFICATIONS
'CE n'EST QUE l'ABC DE SQL, y'a moyen de faire beaucoup plus.

'Si vous avez des remarques ou des modifications à apporter, faites les moi parvenir
'à magidev@hotmail.com (SUJET: TUTORIAL SQL - %VOTRE TITRE%)
'N'oubliez pas votre mail si vous voulez une réponse

'Tutorial Crée avec NOTEPAD pour VBfrance.com (UTILE TANT aux VBéistes qu' aux C++iens
'ou ASPéiens.)

'MERCI A TOUS -MERCI A NIX POUR VBfrance

'!!!!!!!!!!!
'NOTE : J'AI REALISE UN TUTORIAL SUR LE COMPOSANT DATA DE VB, pour ceux qui
'veulent. Il se trouve sur VBfrance.com rubrique Base de donnés, Page 6 (Si vous ne le trouvez pas, maillez-moi)

'Magidev
'www.magidev.be.tf
'magidev @hotmail.com
'www.stardusts.be.tf (pour les mordus d'astronomie, de ciel et d'espace)

'VIVE VBfrance
'VIVE Nix et son EQUIPE
'Vive SQL
'VIVE VB
'VIVE %Votre Nom%
'VIVE LA COMMUNAUTE CodeS-SourceS.com
'VIVE LE FORUM



  

Source

  • '***********************************************************
  • ' UTILISER LES BASES DE DONNES EN VB SANS SOUCIS
  • ' GRACE AUX REQUETES SQL
  • '***********************************************************
  • 'ETAPE 0 > MISE EN GARDE ET PREREQUIS
  • 'ETAPE 1 > CREER LA BASE ACCESS
  • 'ETAPE 2 > AJOUTER LA REFERENCE SQL A VISUAL BASIC
  • 'ETAPE 3 > CONNECTION A LA BASE DE DONNES
  • 'ETAPE 4 > AJOUTER DANS LA BASE DE DONNES
  • 'ETAPE 5 > CREER LA FONCTION REINDEX
  • 'ETAPE 6 > EDITER UN ENREGISTREMENT
  • 'ETAPE 7 > SUPPRIMER UN ENREGISTREMENT
  • 'ETAPE 8 > AFFICHER UN SEUL ENREGISTREMENT CHOISI
  • 'ETAPE 9 > AFFICHER TOUS LES ENREGISTREMENTS DANS UN LISTE
  • 'ETAPE 10> AFFICHER LES ENREGISTREMENTS DANS LA LISTE SUIVANT UN CRITERE
  • 'ETAPE 11> CREER UNE NOUVELLE TABLE
  • 'ETAPE 12> SUPPRIMER UNE TABLE
  • 'ETAPE 13> AJOUTER UN CHAMP
  • 'ETAPE 14> SUPPRIMER UN CHAMP
  • 'ETAPE 15> FERMER LA CONNECTION A LA BASE
  • 'ETAPE 16> AVANTAGES SQL / Composant DATA
  • 'ETAPE 17> CE TUTORIAL...
  • 'NOTE : Ce document est destiné tant aux utilisateurs novices que confirmés
  • 'donc, il est probable que vous sachiez déja manier certaines fonctions
  • 'expliqués ici, mais c'est pour que tout le monde puisse suivre. d'autre part
  • 'je suis pas un dictionnaire ni un précis de grammaire, alors, désolé. Si vous
  • 'avez des plaintes à faire, faites les a Microsoft pour qu'il mettent
  • 'un correcteur d'ORTHOGRAPHE DANS NOTEPAD (Pour info, je connais Word, mais c'est
  • 'chiant pour le texte sur VBfrance :-) )
  • 'PREREQUIS :
  • 'Pour pouvoir effectuer les opérations qui suivent, il vous faut:
  • '-Microsoft Access 97 ou 2000
  • 'ou
  • '-Microsoft SQL Server 6 ou 7
  • 'ou
  • '-Un logiciel compatible pour les bases de donnés
  • 'et
  • '-Microsoft Visual Basic (STANDARD ou ENTREPRISE)
  • 'AVANT DE CONTINUER :
  • '--------------------
  • 'Recherchez le fichier le plus récent de MDAC_TYP.exe ou MDAC_TYPfr.exe
  • ',soit sur le CD-ROM de Visual Basic ou sur le site Web de microsoft à l'adresse
  • 'www.microsoft.fr/vbasic et installez-le, ces composants vont nous servir.
  • '(LE PACKAGE QUE VOUS INSTALLEZ DOIT ETRE LIVRE AUX CLIENTS AVEC L'APPLICATION)
  • 'ATTENTION : Microsoft Access 2000 :
  • '-----------------------------------
  • 'Visual Basic 5 et 6 ne digerent pas le format ACCESS 2000 pour les requetes SQL, donc
  • 'pour plus de facilité, on utilisera le format 97
  • 'POUR EFFECTUER LA CONVERSION 2000>97, enregistrez la base aux format 2000
  • '(GARDEZ LE POUR POUVOIR MODIFIER LES TABLES, LES CHAMPS,...)
  • 'Le format 97 une fois exporté n'est plus modifiable en ACCESS 2000.
  • 'Menu : Outils/Utilitaires de base de donnés/Convertir la base de donnés/à la version précédent de la base Access.
  • '!!!!!!!!!!!!!!!!!!!!
  • 'QUAND VOUS OUVREZ LA BASE AU FORMAT 97 DANS ACCESS 2000,
  • 'CHOISISSEZ IMPERATIVEMENT "VALIDER UNE BASE DE DONNEE" dans la
  • 'question qui vous est posé.
  • 'Vous ne pourrez pas modifier la structure (Tables, ...) Mais pourrez toujours ajouter ou
  • 'supprimer des enregistrements.
  • '!!!!!!!!!!!!!!!!!!!!
  • '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  • ' ETAPE 1
  • ' CREER LA BASE ACCESS
  • '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  • '1-Lancez MS Access (97 ou 2000) et créez une nouvelle base
  • '2-Nommez la base "DB2000" ce qui forme le fichier DB2000.mdb
  • '3-Créez une nouvelle TABLE "En mode création"
  • '4-Creez les champs suivant:
  • 'NOM TYPE TAILLE
  • '---------------------------------------------------------------
  • 'AUTO NumeroAuto /
  • 'INDEX Texte 4
  • 'NOM Texte 50
  • 'PRENOM Texte 50
  • 'VILLE Texte 50
  • 'TELEPHONE Texte 50
  • '---------------------------------------------------------------
  • '5-Effectuez un clic droit sur la case grise de la ligne "AUTO"
  • ' Dans le menu qui apparait, cliquez sur Clé Primaire
  • '6-Fermez la table à l'aide de la croix (X) et enregistrez la sous le nom
  • ' CLIENTS
  • '7-Allez dans le menu
  • ' Outils/Utilitaires de base de donnés/Convertir la base de donnés/à la version précédent de la base Access.
  • '8-Nommez la base 97 avec le nom "DB97" et fermez ACCESS
  • '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  • ' ETAPE 2
  • ' AJOUTER LA REFERENCE SQL A VISUAL BASIC
  • '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  • 'Avant de pouvoir utiliser les requêtes SQL, il faut ajouter la référence à
  • 'Visual basic.
  • '1-Lancez Visual Basic et créez un nouveau projet (EXE STANDARD OU ENTREPRISE)
  • '2-Cliquez sur Projet puis sur Références...
  • '3-Dans la fenêtre, cherchez la ligne "Microsoft DAO 2.5/3.5 COMPATIBILITY LIBRARY"
  • '4-Cochez la et cliquez sur OK
  • '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  • ' ETAPE 3
  • ' CONNECTION A LA BASE DE DONNES
  • '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  • 'Quand on utilise une connection SQL, il faut se connecter à la base
  • 'de donnés :
  • 'On va créer des variables publiques qui contiendrons le chemin et la table
  • 'Pour le chemin de la base
  • Public db As Database
  • 'Pour les tables à lire dans la base
  • Public rs As Recordset
  • 'Pour les chaines sql
  • Public sql As String
  • 'Ensuite, sur un bouton connection ou dans le FORM_LOAD
  • Set db = OpenDatabase(App.Path & "\DB97.mdb")
  • '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  • ' ETAPE 4
  • ' AJOUTER DANS LA BASE DE DONNES
  • '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  • 'On va créer 4 Boites de texte (avec un nom au-dessus (LABEL))
  • '1° = NOM
  • '2° = PRENOM
  • '3° = VILLE
  • '4° = TELEPHONE
  • 'Et aussi un bouton AJOUTER
  • 'Dans le code du bouton, on met :
  • 'sql = "select * from CLIENTS" ' On séléctionne tous les champs de la table CLIENTS
  • 'Set rs = db.OpenRecordset(sql, dbOpenDynaset) ' ici on est bien en mode écriture dbOpenDynaset
  • 'rs.AddNew ' on va ajouter un enregistrement à notre recordset
  • 'rs.Fields("nom") = nom.Text ' Le champ nom = le contrôle Text1
  • 'rs.Fields("prenom") = prenom.Text
  • 'rs.Fields("ville") = ville.Text
  • 'rs.Fields("telephone") = telephone.text
  • 'rs.Update 'Une fois les valeurs définies, on met à jour notre Recordset
  • 'rs.Close
  • '???????????????????
  • 'LE CHAMP "INDEX" QUE L'ON A CREE SERT A TENIR A JOUR LE NOMBRE D'ENREGISTREMENTS
  • 'CAR AUTO NUMEROTE 1,2,3,4,5,6; mais si on supprime le 5, cela donne 1,2,3,4,6. Le
  • 'champ INDEX sera réactualisé à chaque opération par une fonction ReIndex, qui va
  • 'renuméroter tous les enregistrements de 1 à X enregistrements. (C'est utilisé pour supprimer ou modifier
  • 'les enregistrements plus facilement que par AUTO)
  • '???????????????????
  • '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  • ' ETAPE 5
  • ' CREER LA FONCTION ReINDEX
  • '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  • '???????????????????
  • 'LE CHAMP "INDEX" QUE L'ON A CREE SERT A TENIR A JOUR LE NOMBRE D'ENREGISTREMENTS
  • 'CAR AUTO NUMEROTE 1,2,3,4,5,6; mais si on supprime le 5, cela donne 1,2,3,4,6. Le
  • 'champ INDEX sera réactualisé à chaque opération par une fonction ReIndex, qui va
  • 'renuméroter tous les enregistrements de 1 à X enregistrements. (C'est utilisé pour supprimer ou modifier
  • 'les enregistrements plus facilement que par AUTO)
  • '???????????????????
  • 'Faites un nouveau SUB (Public ou Private) nommé ReINDEX
  • 'et mettez y ceci :
  • Private sub ReINDEX()
  • Dim i As Integer
  • i = 0
  • sql = "select * from CLIENTS"
  • Set rs = db.OpenRecordset(sql, dbOpenDynaset)
  • While Not rs.EOF
  • rs.Edit
  • i = i + 1
  • rs.Fields("INDEX") = i
  • rs.Update
  • rs.MoveNext
  • Wend
  • rs.Close
  • End sub
  • '!!!!!!!!!!!
  • 'VOUS DEVEZ UTILISER ReINDEX après toute OPERATION DANS LA BASE (Suppression, Edition,...)
  • 'CELA PERMET DE MODIFIER OU SUPPRIMER UN ENREGISTREMENT PLUS VITE, VOYEZ PLUTOT
  • '!!!!!!!!!!!
  • '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  • ' ETAPE 6
  • ' EDITER UN ENREGISTREMENT
  • '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  • 'Imaginez que vous voulez editer l'enregistrement dont le numéro est donne par
  • 'l'utilisateur à l'aide d'une boite de texte nommé "NUMERO":
  • 'Sur un bouton:
  • sql = "select * from CLIENTS Where INDEX = " & NUMERO.text
  • Set rs = db.OpenRecordset(sql, dbOpenDynaset)
  • While Not rs.EOF
  • rs.Edit
  • rs.Fields("Nom") = Text1.text
  • rs.Fields("Prenom") = Text2.text
  • rs.Fields("Ville") = Text3.text
  • rs.Fields("Telephone") = Text4.text
  • rs.Update
  • rs.MoveNext
  • Wend
  • rs.Close
  • '!!!!!!!!!!!!!!
  • 'ATTENTION = TOUS LES CHAMPS AYANT L'INDEX CONTENU DANS NUMERO SERONT EDITE, VEILLEZ TOUJOURS
  • 'A REINDEX LA BASE AVANT DE MODIFIER LES ENREGISTREMENTS
  • '!!!!!!!!!!!!!!
  • '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  • ' ETAPE 7
  • ' SUPPRIMER UN ENREGISTREMENT
  • '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  • sql = "DELETE * FROM Employes WHERE Auto='" & Valeur.text & "'"
  • db.Execute sql
  • '!!!!!!!!!!!!!!
  • 'ATTENTION = TOUS LES CHAMPS AYANT L'INDEX CONTENU DANS NUMERO SERONT SUPPRIMES, VEILLEZ TOUJOURS
  • 'A REINDEX LA BASE AVANT DE SUPPIMER DES ENREGISTREMENTS
  • '!!!!!!!!!!!!!!
  • 'IMPORTANT = QUAND ON UTILISE "WHERE %Champ%=" il faut mettre ' (apostrophe) entre la valeur
  • '-->WHERE %Champ% = 'Jean'
  • '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  • ' ETAPE 8
  • ' AFFICHER UN SEUL ENREGISTREMENT
  • '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  • sql = "select * from Employes where auto='" & Valeur.text & "'"
  • Set rs = db.OpenRecordset(sql, dbOpenSnapshot)
  • Text1.Text = rs.Fields("NOM")
  • Text2.Text = rs.Fields("FONCTION")
  • Text3.Text = rs.Fields("VILLE")
  • 'IMPORTANT = QUAND ON UTILISE "WHERE %Champ%=" il faut mettre ' (apostrophe) entre la valeur
  • '-->WHERE %Champ% = 'Jean'
  • '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  • ' ETAPE 9
  • ' AFFICHER TOUS LES ENREGISTREMENTS DANS UN LISTE
  • '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  • 'On va faire une liste COMBO appelée COMBO1 et on va lister tous les enregistrements
  • sql = "select * from Employes"
  • Set rs = db.OpenRecordset(sql, dbOpenSnapshot)
  • Combo1.Clear ' Vide le combo
  • While Not rs.EOF 'BOUCLE Tant Que"
  • Combo1.AddItem rs.Fields("Nom") & rs.Fields("VILLE")
  • rs.MoveNext 'ensuite on passe à l'enregistrement suivant qui se trouve dans notre Recordset
  • Wend ' Fin de la boucle Tant que
  • ' On sortira de cette boucle lorsque tous les enregistrement de notre Recordset aurront été lu.
  • rs.Close ' Prenez l'habitude de fermer votre Recordset pour libérer de l'espace mémoire
  • Combo1.ListIndex = -1 'Pour afficher un combo vide.
  • '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  • ' ETAPE 10
  • ' AFFICHER LES ENREGISTREMENTS DANS LA LISTE SUIVANT UN CRITERE
  • '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  • 'On va faire une liste COMBO appelée COMBO1 et on va lister tous les enregistrements
  • sql = "select * from Employes where NOM ='" & Nom.Text & "'"
  • Set rs = db.OpenRecordset(sql, dbOpenSnapshot)
  • Combo1.Clear ' Vide le combo
  • While Not rs.EOF 'BOUCLE Tant Que"
  • Combo1.AddItem rs.Fields("Nom") & " " & rs.Fields("VILLE")
  • rs.MoveNext 'ensuite on passe à l'enregistrement suivant qui se trouve dans notre Recordset
  • Wend ' Fin de la boucle Tant que
  • ' On sortira de cette boucle lorsque tous les enregistrement de notre Recordset aurront été lu.
  • rs.Close ' Prenez l'habitude de fermer votre Recordset pour libérer de l'espace mémoire
  • Combo1.ListIndex = -1 'Pour afficher un combo vide.
  • '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  • ' ETAPE 11
  • ' CREER UNE NOUVELLE TABLE
  • '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  • 'On va créer une table nommée CLIENT dont les champs seront NOM, VILLE
  • sql = "CREATE TABLE Clients3 (Prenom TEXT (5), Ville TEXT (5))"
  • db.Execute sql
  • '(5)= Le nombre de caractère MAX dans le champ (Pour TEXT uniquement)
  • 'TEXT = Le type de donnés
  • 'La table CLIENTS3 Est crée
  • 'LES POSSIBILITE DE TYPE:
  • '-------------------------
  • 'NOM TAILLE VALEUR
  • '***********************************************
  • 'BINARY 1 octet/caractère /
  • 'BIT 1 octet YES/NO
  • 'BYTE 1 octet Valeur entre 0 et 255
  • 'COUNTER 4 octets NumeroAUTO
  • 'CURRENCY 8 octets - 922 337 203 685 477,5808 et 922 337 203 685 477,5807.
  • 'DATETIME 8 octets Date ou Heure entre 100 et 9999 (années)
  • 'GUID 128 bits /
  • 'SINGLE 4 octets Virgule flotante simple précision
  • 'DOUBLE 8 octets double précision
  • 'SHORT 2 octets -32 768 et 32 767
  • 'LONG 4 octets - 2 147 483 648 et 2 147 483,647
  • 'LONGTEXT 1 octet/caractère de 0 à 1,2 GO
  • 'LONGBINARY Au besoin de 0 à 1,2 GO
  • 'TEXT 1 octet par caractère de 0 à 255 caractères
  • '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  • ' ETAPE 12
  • ' SUPPRIMER UNE TABLE
  • '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  • 'On va supprimer la table CLIENTS
  • sql = "DROP TABLE Clients"
  • db.Execute sql
  • '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  • ' ETAPE 13
  • ' AJOUTER UN CHAMP DANS UNE TABLE
  • '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  • 'On va ajouter le champ Nom de type TEXT de longueur 10
  • sql = "ALTER TABLE Clients ADD COLUMNS Nom TEXT (10)"
  • db.Execute sql
  • '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  • ' ETAPE 14
  • ' SUPPRIMER UN CHAMP DANS UNE TABLE
  • '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  • 'On va supprimer le champ NOM
  • sql = "ALTER TABLE Clients DROP COLUMNS Nom"
  • db.Execute sql
  • '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  • ' ETAPE 15
  • ' FERMER LA CONNECTION A LA BASE
  • '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  • 'Quand on quitte le programme, on ferme la connection à la base
  • db.close
  • '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  • ' ETAPE 16
  • ' AVANTAGES DE SQL / Composants DATA
  • '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  • -Rapidite
  • -Moins D'erreurs
  • -Plus Facile pour les grosses manipulations
  • -Ajouter/Supprimer une table
  • -Ajouter/Supprimer des champs
  • -Pas de gros composants à transporter
  • !!!!!!!
  • NOTE : Utiliser MySQL ou Microsoft SQL Server pour faire de meilleurs
  • bases de donnés (Jusqu'a 1 TERA-OCTET) contrer 2 GO pour la base access
  • en plus, les bases sont plus propres.
  • '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  • ' ETAPE 17
  • ' CE TUTORIAL...
  • '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  • 'CE TUTORIAL PEUT ÊTRE DISTRIBUE GRATUITEMENT SANS AVOIR SUBI DES MODIFICATIONS
  • 'CE n'EST QUE l'ABC DE SQL, y'a moyen de faire beaucoup plus.
  • 'Si vous avez des remarques ou des modifications à apporter, faites les moi parvenir
  • 'à magidev@hotmail.com (SUJET: TUTORIAL SQL - %VOTRE TITRE%)
  • 'N'oubliez pas votre mail si vous voulez une réponse
  • 'Tutorial Crée avec NOTEPAD pour VBfrance.com (UTILE TANT aux VBéistes qu' aux C++iens
  • 'ou ASPéiens.)
  • 'MERCI A TOUS -MERCI A NIX POUR VBfrance
  • '!!!!!!!!!!!
  • 'NOTE : J'AI REALISE UN TUTORIAL SUR LE COMPOSANT DATA DE VB, pour ceux qui
  • 'veulent. Il se trouve sur VBfrance.com rubrique Base de donnés, Page 6 (Si vous ne le trouvez pas, maillez-moi)
  • 'Magidev
  • 'www.magidev.be.tf
  • 'magidev@hotmail.com
  • 'www.stardusts.be.tf (pour les mordus d'astronomie, de ciel et d'espace)
  • 'VIVE VBfrance
  • 'VIVE Nix et son EQUIPE
  • 'Vive SQL
  • 'VIVE VB
  • 'VIVE %Votre Nom%
  • 'VIVE LA COMMUNAUTE CodeS-SourceS.com
  • 'VIVE LE FORUM
'***********************************************************
'	UTILISER LES BASES DE DONNES EN VB SANS SOUCIS
'                   GRACE AUX REQUETES SQL
'***********************************************************

'ETAPE 0 > MISE EN GARDE ET PREREQUIS
'ETAPE 1 > CREER LA BASE ACCESS
'ETAPE 2 > AJOUTER LA REFERENCE SQL A VISUAL BASIC
'ETAPE 3 > CONNECTION A LA BASE DE DONNES
'ETAPE 4 > AJOUTER DANS LA BASE DE DONNES
'ETAPE 5 > CREER LA FONCTION REINDEX
'ETAPE 6 > EDITER UN ENREGISTREMENT
'ETAPE 7 > SUPPRIMER UN ENREGISTREMENT
'ETAPE 8 > AFFICHER UN SEUL ENREGISTREMENT CHOISI
'ETAPE 9 > AFFICHER TOUS LES ENREGISTREMENTS DANS UN LISTE
'ETAPE 10> AFFICHER LES ENREGISTREMENTS DANS LA LISTE SUIVANT UN CRITERE
'ETAPE 11> CREER UNE NOUVELLE TABLE
'ETAPE 12> SUPPRIMER UNE TABLE
'ETAPE 13> AJOUTER UN CHAMP
'ETAPE 14> SUPPRIMER UN CHAMP
'ETAPE 15> FERMER LA CONNECTION A LA BASE
'ETAPE 16> AVANTAGES SQL / Composant DATA
'ETAPE 17> CE TUTORIAL...


'NOTE : Ce document est destiné tant aux utilisateurs novices que confirmés
'donc, il est probable que vous sachiez déja manier certaines fonctions
'expliqués ici, mais c'est pour que tout le monde puisse suivre. d'autre part
'je suis pas un dictionnaire ni un précis de grammaire, alors, désolé. Si vous
'avez des plaintes à faire, faites les a Microsoft pour qu'il mettent
'un correcteur d'ORTHOGRAPHE DANS NOTEPAD (Pour info, je connais Word, mais c'est
'chiant pour le texte sur VBfrance :-) )

'PREREQUIS : 
'Pour pouvoir effectuer les opérations qui suivent, il vous faut:

'-Microsoft Access 97 ou 2000
'ou
'-Microsoft SQL Server 6 ou 7
'ou
'-Un logiciel compatible pour les bases de donnés
'et
'-Microsoft Visual Basic (STANDARD ou ENTREPRISE)

'AVANT DE CONTINUER : 
'--------------------
'Recherchez le fichier le plus récent de MDAC_TYP.exe ou MDAC_TYPfr.exe
',soit sur le CD-ROM de Visual Basic ou sur le site Web de microsoft à l'adresse
'www.microsoft.fr/vbasic et installez-le, ces composants vont nous servir.
'(LE PACKAGE QUE VOUS INSTALLEZ DOIT ETRE LIVRE AUX CLIENTS AVEC L'APPLICATION)

'ATTENTION : Microsoft Access 2000 :
'-----------------------------------
'Visual Basic 5 et 6 ne digerent pas le format ACCESS 2000 pour les requetes SQL, donc
'pour plus de facilité, on utilisera le format 97

'POUR EFFECTUER LA CONVERSION 2000>97, enregistrez la base aux format 2000 
'(GARDEZ LE POUR POUVOIR MODIFIER LES TABLES, LES CHAMPS,...) 
'Le format 97 une fois exporté n'est plus modifiable en ACCESS 2000.

'Menu : Outils/Utilitaires de base de donnés/Convertir la base de donnés/à la version précédent de la base Access.

'!!!!!!!!!!!!!!!!!!!!
'QUAND VOUS OUVREZ LA BASE AU FORMAT 97 DANS ACCESS 2000, 
'CHOISISSEZ IMPERATIVEMENT "VALIDER UNE BASE DE DONNEE" dans la 
'question qui vous est posé. 
'Vous ne pourrez pas modifier la structure (Tables, ...) Mais pourrez toujours ajouter ou 
'supprimer des enregistrements.
'!!!!!!!!!!!!!!!!!!!!

'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'  				ETAPE 1
' 	  		CREER LA BASE ACCESS
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

'1-Lancez MS Access (97 ou 2000) et créez une nouvelle base
'2-Nommez la base "DB2000" ce qui forme le fichier DB2000.mdb
'3-Créez une nouvelle TABLE "En mode création"
'4-Creez les champs suivant:

'NOM			TYPE			TAILLE
'---------------------------------------------------------------
'AUTO			NumeroAuto		/
'INDEX			Texte			4	
'NOM			Texte			50
'PRENOM			Texte			50
'VILLE			Texte			50
'TELEPHONE		Texte			50
'---------------------------------------------------------------
'5-Effectuez un clic droit sur la case grise de la ligne "AUTO"
'  Dans le menu qui apparait, cliquez sur Clé Primaire
'6-Fermez la table à l'aide de la croix (X) et enregistrez la sous le nom
'  CLIENTS
'7-Allez dans le menu 
'  Outils/Utilitaires de base de donnés/Convertir la base de donnés/à la version précédent de la base Access.
'8-Nommez la base 97 avec le nom "DB97" et fermez ACCESS

'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'  				ETAPE 2
' 	  	AJOUTER LA REFERENCE SQL A VISUAL BASIC
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

'Avant de pouvoir utiliser les requêtes SQL, il faut ajouter la référence à
'Visual basic.

'1-Lancez Visual Basic et créez un nouveau projet (EXE STANDARD OU ENTREPRISE)
'2-Cliquez sur Projet puis sur Références...
'3-Dans la fenêtre, cherchez la ligne "Microsoft DAO 2.5/3.5 COMPATIBILITY LIBRARY"
'4-Cochez la et cliquez sur OK

'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'  				ETAPE 3
' 	  	     CONNECTION A LA BASE DE DONNES
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

'Quand on utilise une connection SQL, il faut se connecter à la base
'de donnés :

'On va créer des variables publiques qui contiendrons le chemin et la table

'Pour le chemin de la base

  Public db As Database

'Pour les tables à lire dans la base

  Public rs As Recordset

'Pour les chaines sql 

  Public sql As String

'Ensuite, sur un bouton connection ou dans le FORM_LOAD

  Set db = OpenDatabase(App.Path & "\DB97.mdb")

'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'  				ETAPE 4
' 	  	     AJOUTER DANS LA BASE DE DONNES
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

'On va créer 4 Boites de texte (avec un nom au-dessus (LABEL))
'1° = NOM
'2° = PRENOM
'3° = VILLE
'4° = TELEPHONE
'Et aussi un bouton AJOUTER

'Dans le code du bouton, on met :

'sql = "select * from CLIENTS" ' On séléctionne tous les champs de la table CLIENTS
'Set rs = db.OpenRecordset(sql, dbOpenDynaset) ' ici on est bien en mode écriture dbOpenDynaset

'rs.AddNew ' on va ajouter un enregistrement à notre recordset
'rs.Fields("nom") = nom.Text ' Le champ nom = le contrôle Text1
'rs.Fields("prenom") = prenom.Text
'rs.Fields("ville") = ville.Text
'rs.Fields("telephone") = telephone.text

'rs.Update 'Une fois les valeurs définies, on met à jour notre Recordset
'rs.Close

'???????????????????
'LE CHAMP "INDEX" QUE L'ON A CREE SERT A TENIR A JOUR LE NOMBRE D'ENREGISTREMENTS
'CAR AUTO NUMEROTE 1,2,3,4,5,6; mais si on supprime le 5, cela donne 1,2,3,4,6. Le
'champ INDEX sera réactualisé à chaque opération par une fonction ReIndex, qui va
'renuméroter tous les enregistrements de 1 à X enregistrements. (C'est utilisé pour supprimer ou modifier
'les enregistrements plus facilement que par AUTO)
'???????????????????

'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'  				ETAPE 5
' 	  	     CREER LA FONCTION ReINDEX
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

'???????????????????
'LE CHAMP "INDEX" QUE L'ON A CREE SERT A TENIR A JOUR LE NOMBRE D'ENREGISTREMENTS
'CAR AUTO NUMEROTE 1,2,3,4,5,6; mais si on supprime le 5, cela donne 1,2,3,4,6. Le
'champ INDEX sera réactualisé à chaque opération par une fonction ReIndex, qui va
'renuméroter tous les enregistrements de 1 à X enregistrements. (C'est utilisé pour supprimer ou modifier
'les enregistrements plus facilement que par AUTO)
'???????????????????

'Faites un nouveau SUB (Public ou Private) nommé ReINDEX
'et mettez y ceci :

Private sub ReINDEX()

Dim i As Integer
i = 0
sql = "select * from CLIENTS"
Set rs = db.OpenRecordset(sql, dbOpenDynaset)

While Not rs.EOF
rs.Edit
i = i + 1
rs.Fields("INDEX") = i
rs.Update
rs.MoveNext

Wend
rs.Close

End sub

'!!!!!!!!!!!
'VOUS DEVEZ UTILISER ReINDEX après toute OPERATION DANS LA BASE (Suppression, Edition,...)
'CELA PERMET DE MODIFIER OU SUPPRIMER UN ENREGISTREMENT PLUS VITE, VOYEZ PLUTOT
'!!!!!!!!!!!

'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'  				ETAPE 6
' 	  	        EDITER UN ENREGISTREMENT
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

'Imaginez que vous voulez editer l'enregistrement dont le numéro est donne par 
'l'utilisateur à l'aide d'une boite de texte nommé "NUMERO":

'Sur un bouton:

sql = "select * from CLIENTS Where INDEX = " & NUMERO.text
Set rs = db.OpenRecordset(sql, dbOpenDynaset)

While Not rs.EOF
rs.Edit
rs.Fields("Nom") = Text1.text
rs.Fields("Prenom") = Text2.text
rs.Fields("Ville") = Text3.text
rs.Fields("Telephone") = Text4.text
rs.Update
rs.MoveNext

Wend
rs.Close

'!!!!!!!!!!!!!!
'ATTENTION = TOUS LES CHAMPS AYANT L'INDEX CONTENU DANS NUMERO SERONT EDITE, VEILLEZ TOUJOURS
'A REINDEX LA BASE AVANT DE MODIFIER LES ENREGISTREMENTS
'!!!!!!!!!!!!!!

'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'  				ETAPE 7
' 	  	        SUPPRIMER UN ENREGISTREMENT
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

sql = "DELETE * FROM Employes WHERE Auto='" & Valeur.text & "'"
db.Execute sql

'!!!!!!!!!!!!!!
'ATTENTION = TOUS LES CHAMPS AYANT L'INDEX CONTENU DANS NUMERO SERONT SUPPRIMES, VEILLEZ TOUJOURS
'A REINDEX LA BASE AVANT DE SUPPIMER DES ENREGISTREMENTS
'!!!!!!!!!!!!!!

'IMPORTANT = QUAND ON UTILISE "WHERE %Champ%=" il faut mettre ' (apostrophe) entre la valeur
'-->WHERE %Champ% = 'Jean'

'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'  				ETAPE 8
' 	  	       AFFICHER UN SEUL ENREGISTREMENT
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

sql = "select * from Employes where auto='" & Valeur.text &  "'" 

Set rs = db.OpenRecordset(sql, dbOpenSnapshot)
Text1.Text = rs.Fields("NOM")
Text2.Text = rs.Fields("FONCTION")
Text3.Text = rs.Fields("VILLE")

'IMPORTANT = QUAND ON UTILISE "WHERE %Champ%=" il faut mettre ' (apostrophe) entre la valeur
'-->WHERE %Champ% = 'Jean'

'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'  				ETAPE 9
' 	  	AFFICHER TOUS LES ENREGISTREMENTS DANS UN LISTE
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

'On va faire une liste COMBO appelée COMBO1 et on va lister tous les enregistrements

sql = "select * from Employes" 

Set rs = db.OpenRecordset(sql, dbOpenSnapshot) 


Combo1.Clear ' Vide le combo



While Not rs.EOF 'BOUCLE Tant Que"

Combo1.AddItem rs.Fields("Nom") & rs.Fields("VILLE") 

rs.MoveNext 'ensuite on passe à l'enregistrement suivant qui se trouve dans notre Recordset

Wend ' Fin de la boucle Tant que
' On sortira de cette boucle lorsque tous les enregistrement de notre Recordset aurront été lu.

rs.Close ' Prenez l'habitude de fermer votre Recordset pour libérer de l'espace mémoire

Combo1.ListIndex = -1 'Pour afficher un combo vide.

'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'  				ETAPE 10
' 	 AFFICHER LES ENREGISTREMENTS DANS LA LISTE SUIVANT UN CRITERE
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

'On va faire une liste COMBO appelée COMBO1 et on va lister tous les enregistrements

sql = "select * from Employes where NOM ='" & Nom.Text & "'" 

Set rs = db.OpenRecordset(sql, dbOpenSnapshot) 


Combo1.Clear ' Vide le combo



While Not rs.EOF 'BOUCLE Tant Que"

Combo1.AddItem rs.Fields("Nom") & " " & rs.Fields("VILLE") 

rs.MoveNext 'ensuite on passe à l'enregistrement suivant qui se trouve dans notre Recordset

Wend ' Fin de la boucle Tant que
' On sortira de cette boucle lorsque tous les enregistrement de notre Recordset aurront été lu.

rs.Close ' Prenez l'habitude de fermer votre Recordset pour libérer de l'espace mémoire

Combo1.ListIndex = -1 'Pour afficher un combo vide.

'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'  				ETAPE 11
'                	 CREER UNE NOUVELLE TABLE
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'On va créer une table nommée CLIENT dont les champs seront NOM, VILLE

sql = "CREATE TABLE Clients3 (Prenom TEXT (5), Ville TEXT (5))"
db.Execute sql

'(5)= Le nombre de caractère MAX dans le champ (Pour TEXT uniquement)

'TEXT = Le type de donnés

'La table CLIENTS3 Est crée


'LES POSSIBILITE DE TYPE:
'-------------------------
'NOM		TAILLE			VALEUR
'***********************************************
'BINARY		1 octet/caractère	/
'BIT		1 octet			YES/NO
'BYTE		1 octet			Valeur entre 0 et 255
'COUNTER	4 octets		NumeroAUTO
'CURRENCY	8 octets		- 922 337 203 685 477,5808 et 922 337 203 685 477,5807.
'DATETIME	8 octets		Date ou Heure entre 100 et 9999 (années)
'GUID		128 bits		/
'SINGLE		4 octets		Virgule flotante simple précision
'DOUBLE		8 octets				 double précision
'SHORT		2 octets		-32 768 et 32 767
'LONG		4 octets		- 2 147 483 648 et 2 147 483,647
'LONGTEXT	1 octet/caractère	de 0 à 1,2 GO
'LONGBINARY	Au besoin		de 0 à 1,2 GO
'TEXT		1 octet par caractère   de 0 à 255 caractères

'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'  				ETAPE 12
' 			   SUPPRIMER UNE TABLE
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'On va supprimer la table CLIENTS

sql = "DROP TABLE Clients"
db.Execute sql

'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'  				ETAPE 13
'       		      AJOUTER UN CHAMP DANS UNE TABLE
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'On va ajouter le champ Nom de type TEXT de longueur 10

sql = "ALTER TABLE Clients ADD COLUMNS Nom TEXT (10)"
db.Execute sql

'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'  				ETAPE 14
'      		     SUPPRIMER UN CHAMP DANS UNE TABLE
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'On va supprimer le champ NOM

sql = "ALTER TABLE Clients DROP COLUMNS Nom"
db.Execute sql

'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'  				ETAPE 15
'      		     FERMER LA CONNECTION A LA BASE
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

'Quand on quitte le programme, on ferme la connection à la base

db.close

'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'  				ETAPE 16
'      		     AVANTAGES DE SQL / Composants DATA
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

-Rapidite
-Moins D'erreurs
-Plus Facile pour les grosses manipulations
-Ajouter/Supprimer une table
-Ajouter/Supprimer des champs
-Pas de gros composants à transporter

!!!!!!!
NOTE : Utiliser MySQL ou Microsoft SQL Server pour faire de meilleurs
bases de donnés (Jusqu'a 1 TERA-OCTET) contrer 2 GO pour la base access
en plus, les bases sont plus propres.

'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'  				ETAPE 17
'      		              CE TUTORIAL...
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

'CE TUTORIAL PEUT ÊTRE DISTRIBUE GRATUITEMENT SANS AVOIR SUBI DES MODIFICATIONS
'CE n'EST QUE l'ABC DE SQL, y'a moyen de faire beaucoup plus.

'Si vous avez des remarques ou des modifications à apporter, faites les moi parvenir
'à magidev@hotmail.com (SUJET: TUTORIAL SQL - %VOTRE TITRE%)
'N'oubliez pas votre mail si vous voulez une réponse

'Tutorial Crée avec NOTEPAD pour VBfrance.com (UTILE TANT aux VBéistes qu' aux C++iens
'ou ASPéiens.)

'MERCI A TOUS -MERCI A NIX POUR VBfrance

'!!!!!!!!!!!
'NOTE : J'AI REALISE UN TUTORIAL SUR LE COMPOSANT DATA DE VB, pour ceux qui
'veulent. Il se trouve sur VBfrance.com rubrique Base de donnés, Page 6 (Si vous ne le trouvez pas, maillez-moi)

'Magidev
'www.magidev.be.tf
'magidev@hotmail.com
'www.stardusts.be.tf (pour les mordus d'astronomie, de ciel et d'espace)

'VIVE VBfrance
'VIVE Nix et son EQUIPE
'Vive SQL
'VIVE VB
'VIVE %Votre Nom%
'VIVE LA COMMUNAUTE CodeS-SourceS.com
'VIVE LE FORUM



  

 Conclusion

Et voila  

SURVEILLEZ LES SOURCES MAGIDEV - IL VA Y AVOIR UNE NOUVELLE VERSION HTML REVUE ET CORRIGEE (16/01/2003) BEAUCOUPS PLUS COMPLETE ET PLUS FACILE A UTILISER AVEC LES LIENS HTML


 Sources du même auteur

Source avec Zip UTILISER VB ET LES BASES DE DONNEES GRACE AU SQL
EMPECHER LA SAISIE DE CERTAINS CARACTERES LE PLUS SIMPLEMENT...
MANIPULER LES DATES ET HEURES (ADDITION ET SOUSTRACTION)
DATE, NOM DU JOUR AVEC UNE MAJUSCULE
DATE, AFFICAGE RAPIDE

 Sources de la même categorie

Source avec Zip Source avec une capture BIEN ADMINISTRER LES ETUDIANTS ET LEURS CÔTES par okosa
Source avec Zip VBA EXEL GESTION DE PERSONEL NOUVEAU CONTRAT DE TRAVAI par oudlarbi
Source avec Zip Source avec une capture CREATION D'UN OBJET D'ACCÈS AUX DONNÉES par okosa
Source avec Zip Source .NET (Dotnet) MISAHORAIRE par MdelM
Source avec Zip Source avec une capture BASEDEDONNEES,GESTIONDEMALADES,DATABASSE par shadkitenge

Commentaires et avis

Commentaire de Kholera le 26/02/2002 10:30:20

Je ne sais pas s'il y avait déjà d'autres sources de ce genre sur le site, mais la tienne est vraiment complète pour débuter ou réviser...

Spéciale HOLA!!! pour l'astuce de reconvertion de la base Access 2000 en 97 pour une ouverture en direct, sans passer par un DSN système et autres...

Commentaire de TTMan le 26/02/2002 11:08:30

On peut ouvrir les bases access 2000 directement si on applique le SP5 et les MDAC 2.1. Autrement c'est un super tutorial.

Commentaire de Kholera le 27/02/2002 10:40:56

TTMan, je veux bien la manip parcque j'ai bien mis le SP5, et même installé le mdac 2.7 hier, et en ouvrant une base en direct j'ai toujours "format de base non reconnu"...

Y a t'il des références supplémentaires à mettre ? Ou autres ?

Commentaire de slakrb le 23/07/2002 12:00:43

J'ai utilisé ton code ( 5 ème étape) et j'ai trouvé un problème avec "rs.Edit". La propriété Edit n'existe!!!!! L'erreur qu'il me sort est " Incompatibilité de type". Please réponds moi le plus vite possible!!! c urgent. Merci.

Commentaire de Magidev le 08/11/2002 11:28:07

MESSAGE IMPORTANT !!! VOUS N'ETES PAS OBLIGE D'UTILISER LA FONCTION ReINDEX décrite ci-dessus. Il faut mieux s'en passer si on veut optimiser la vitesse. Ce tutorial est en révision, je publierais bientot le nouveau. Entre temps, essayez d'utiliser autre chose, les numéros auto d'access par Exemple. De toute façon, dans le prochain : Reindex n'existera plus . Merci et désolé pour les désagréments éventuels

Commentaire de Magidev le 08/11/2002 11:34:11

SECONDE MESSAGE IMPORTANT !!! PLANTAGE DU MOTEUR Microsoft SQL
Quand on execute des tas de requetes, il se peut qu'un SELECT, qui doit sortir plusieurs lignes, n'en sorte qu'une (BUG MICROSOFT :-) ) POUR REMEDIER A CE PROBLEME:

AU lieu de

SELECT * FROM matable

on met

SELECT * FROM matable ORDER BY Prenom (ou autre chose)

Le moteur ne plante plus et on peut lister tout.
Un BUG incompréhensible et très emm*****
avec ORDER BY critere CA FONCTIONNE et EN PLUS, LE RESULTAT EST CLASSE PAR Ordre ALPHABETIQUE (Ou numérique si c'est un chiffre).

Salut

Commentaire de christoussaint le 30/04/2003 13:21:30

Trés clair. Merci pour ce tutorial qui a le mérite d'être accessible par tout le monde.
Chapeau!

Chris

Commentaire de fluminis le 04/05/2003 20:27:17

Vraiment Cool merci pour ce tut tres complet

Commentaire de thekissman le 22/05/2003 15:32:13

J'apprécie !

C'est vraiment bien d'avoir penser à nous.

Je voudrais bien savoir si tu as la mise à jour de ce code?

Commentaire de tomatokatchup007 le 28/07/2003 19:38:26

Excellent, mais ce serai bien de lister toute les requetes possible, avec un petit commentaire a coté pour dire a quoi elle sert. Ce serai géniale!

Commentaire de AbsolutBeauty le 19/08/2003 20:32:04

Bien. Mais est ce que le Service Pack 5 ne permet il pas justement de travailler avec Access 2000 ? Il n'est pas tjrs possible de convertir la BdD suivant les autres applications qui travaillent avec elle.

Commentaire de Noxid le 31/10/2003 15:50:25

Y'a pas plus court? ^^ lol. Moi je voudrais lire une bdd MySQL... C'est possib'?

Commentaire de lumesh le 10/11/2003 16:05:36

Euh ... comment dire ..
Jai tout suivit a la lettre mais le Db et le Rs retent constement a Nothing quelque soit louverture de la base ou d'un recorset :/
Si qqn a une idee svp

Commentaire de energiez le 26/03/2004 10:20:01

Merci pour ce trés bon tuto!
Grace a ca, je peux continuer mon projet!
Encore merci :D

Commentaire de Frecky le 08/04/2004 00:36:10

Merci, mais vraiment, MERCI!
Mon ami et moi fesons un programes pour storer de l'information, mais sans database sa aurai été par .INI :\ vive access!!
avec se tuto, c'est si simple ! tout functionne à la perfection !!

Commentaire de didjudai le 12/05/2004 10:14:54

Faut-il absolument que l'utilisateur d'un programme ai installé access pour accéder à des bases de données avec cette méthode ?

Commentaire de energiez le 12/05/2004 12:50:54

Non, lorsque tu utilises l'assistant d'empaquetage, les dll necessaire sont automatique pris en compte. Ainsi lorsque ton programme sera installer, les dlls necessaire seront automatiquement installé.

Commentaire de psykocrash le 27/07/2004 13:31:13

Slt,
voila je programme actuellement un logiciel de gestion de base de données access. La version 3 que je développe doit permettre d'ajouter et de modifier des enregistrements, mais pour modifier un enregistrement, il faut que je sache quel champs est une clé primaire. QQ peut m'aider ?
Merci

Commentaire de zeunz le 26/08/2004 17:55:09

slt,
je viens de voir ton tutoriels sur les BD. ca fait longtemps ke je ne me ss pas penche dessus ms j'avais un pb avec les base de données access:
je voudrai mettre un mot de passe general sur une base quelconque que j'aurai cree par mon projet VB. ms la ou je bloque, c'est comment l'ouvrir et acceder aux table de la base. si qqun pourrait m'aider ou juste m'ecrire le code necessaire.
merci bcp.
salutations a tous les programmeurs...

Commentaire de Magidev le 26/08/2004 18:05:23

Je vous conseil a tous d utiliser mon autre source sur les Bases de données et le SQL dont g oublié le numéro. Elle est faite en HTML et est bien plus détaillée. Pour les mots de passe je ne peu pas t 'aider zeunz je n'ai jamais eu a faire a ce probleme. Mais si je trouve la solution je n'y menquerai pas.

Commentaire de Magidev le 26/08/2004 18:15:20

MERCI A TOUS POUR VOS REMARQUES POSITIVES
ca me fait tres plaisir si je peu vous aider

Le lien pour la source mise a jour est celui-ci

Source 5676

http://www.vbfrance.com/code.aspx?ID=5676

Commentaire de Magidev le 26/08/2004 18:17:49

CORRECTION ERREUR DANS LE MESSAGE PRECEDENT

http://www.vbfrance.com/code.aspx?ID=5672

SOURCE 5672 et non 5676 MERCI DESOLE, ON NE C PAS EDITER SES PROPRES COMMENTAIRES ;-)

Commentaire de christoussaint le 26/08/2004 21:11:28

Bonjour,

Pour inserer un mot de passe general dans ta db tu peux essayer ca:

Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim pwdActuel As String
pwdActuel = ";pwd="ton_mot_de_passe"
Set db = DAO.Workspaces(0).OPENDATABASE("C;\blabla.mdb", False, False, pwdActuel)
Set rs = db.OpenRecordset("select * from [Ta_table] ORDER BY Ton_Champs;")

Chez moi ca fonctionne sans probleme

Chris

Commentaire de zeunz le 27/08/2004 22:27:31

merci a magidev pr son tutoriels encore une fois et aussi pr sa reponse.
merci egalement a christoussaint pr sa reponse, je vais etudier tout ca.

bonne continuation.

Commentaire de enysby le 04/04/2005 16:30:55

bravo pour ce code trés complet!!!
mille merci!
bonne continuation

Commentaire de isch le 16/11/2005 12:41:13

J'ai bcoup apprécié la source avec l'utilisation de Dao 2.5/3.5.
J'ai une bd sous oracle7 sous serveur.
Est-ce que je peux avoir des directives assez simples(procédure) comme avec cette source?
Merci d'être indulgent.
mon mail: nbouadou@cie.ci

Commentaire de vautour32 le 25/10/2007 18:46:00 9/10

Ce tuto est vraiment génial!!!

Mais dans ma version d'ADO il y a pas de méthode "Edit" au recordset.
Vous porriez me donner un code équivallent (la méthode "Update" n'a pas l'air de marcher pour modifier un
enregistrement existant)?
Merci d'avance

Commentaire de miss fafa le 11/04/2008 23:30:49

bjr tt le monde,
beh moi jamais j'ai reflichie que je vais entrer ds le monde du vb,mé voilà mes etudes m'oblige pour faire mon pfe sous theme "gestion d'un cabinet dentaire" avec vb.net .bref moi j vais faire ma base avec l'oracle qui est plus lourd que access ,sinon j te felicite pour ce tuto bravo!! il m'a donné le courage pour attaquer ma base vraiment chapeau
  j'ai deja t'invite à ma boite de hotmail,
bonne continuation.......

Commentaire de electro le 01/04/2009 05:29:20 8/10

SUPER, merci pour toutes les infos. Par contre, comment je fais pour connecter sur un MySQL ou SQLserver sans utiliser l'odbc (si possible) ou alors, comment créer automatiquement l'odbc si inexistant au démarrage du programme?

Que préconise tu?

Et encore merci

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,998 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales