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 !

CREER SUPPRIMER UNE BASE UNE TABLE UN CHAMP LIER EXCEL À ACCESS AINSI QUE CREER UNE REQUETE AFIN DE L'EXECUTER


Information sur la source

Catégorie :Base de Donnees Niveau : Débutant Date de création : 17/06/2003 Date de mise à jour : 17/06/2003 12:04:03 Vu : 24 884

Note :
7 / 10 - par 12 personnes
7,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

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

Description

Creer supprimer une base access
Creer supprimer une table
creer un champs
Mon programme montre comment creer lier un fichier excel a access sous vb, creer donc la table a partir du fichier excel. Creer une requete ainsi que lui donnée les instructions en sql et l'executer
  
 

Source

  • 'On declare les variables
  • 'n oublier pas d ajouter la reference microsoft DAO 2.5/3.5 et microsoft access 8.0 object
  • Dim DB1 As Database
  • Dim TD as TableDef
  • Dim FLD as Field
  • Dim Db as Database
  • Dim qdf As QueryDef
  • Dim chSQL As String
  • 'on cree le fichier access ou vous le desirez
  • Set DB1 = CreateDatabase("c:\????\????\????.mdb", dbLangGeneral)
  • 'suprimer une base
  • Kill ("C:\????\????\????.mdb")
  • 'on ouvre la base creer
  • Set DB1 = OpenDatabase("c:\????.mdb")
  • 'on cree la table que j appelle ici plan_inventaire
  • Set TF = DB.CreateTableDef("plan_inventaire")
  • 'on creer ici 3 champ (produit, n_produit, nom_produit) dans la table plan prealablement ouverte
  • Set FLD = TF.CreateField("produit", dbInteger)
  • TF.Fields.Append FLD
  • Set FLD = TF.CreateField("n_produit", dbText, 20)
  • TF.Fields.Append FLD
  • Set FLD = TF.CreateField("nom_produit", dbText, 20)
  • TF.Fields.Append FLD
  • DB1.TableDefs.Append TF
  • 'fermeture de la base
  • DB1.close
  • '-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  • 'POUR LIER UN FICHIER EXCEL A ACCESS SOUS VB
  • 'ouverture de la table creer
  • Db.OpenCurrentDatabase ("c:\????\????\????.mdb")
  • 'Commande pour lier le fichier excel a access en creant une table que l'on appellera ici plan
  • DoCmd.TransferSpreadsheet acImport, 8, "plan_", (C:\????\????\????.xls), True, ""
  • 'Suppression de la table plan creer auparavant
  • DoCmd.DeleteObject acTable, "plan_inventaire"
  • Db.CloseCurrentDatabase
  • '-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  • 'CREER UNE REQUETE ET L EXECUTER
  • 'on ouvre notre base
  • Set Db= OpenDatabase("c:\????\????\????.mdb")
  • Db.QueryDefs.Refresh
  • ' Test d'existence de la requete si la requête NouvelleRequête existe, la supprime.Sinon la creer
  • For Each qdf In Db.QueryDefs
  • If qdf.Name = "NouvelleRequete" Then
  • Db.QueryDefs.Delete qdf.Name
  • End If
  • Next qdf
  • 'Creer n importe qu elle requete sous access puis toujours sous access cliquer sur modifier puis sur moder sql copier toute la chaine sql et placer la tous simplement entre les de guillemet
  • 'On stock notre chaine SQL dans chSQL (selection des champs + critere)
  • chSQL = "????????????votre chaine SQL????????????????ex: SELECT plan_.[Secteur_(Appli)], plan_.Lieu INTO plan From plan_ WHERE (((plan_.[Secteur_(Appli)])>0));??????????????????????????????????????????"
  • ' On cree la requete
  • 'Creation de la requete "nouvellerequete"
  • Set qdf = Db.CreateQueryDef("NouvelleRequete", chSQL)
  • qdf.Close
  • Db.Close
  • ' On execute la requete
  • 'ouvre la base
  • Db.OpenCurrentDatabase ("????\????\????\????.mdb")
  • 'On donne un nom a notre requete
  • stDocName = "NouvelleRequete"
  • On execute la requete
  • DoCmd.OpenQuery stDocName, acNormal, acEdit
  • Db.CloseCurrentDatabase
  • 'Et voila c est fini j espere que mon code pourra en aider quelqu un
'On declare les variables
'n oublier pas d ajouter la reference microsoft DAO 2.5/3.5 et microsoft access 8.0 object


Dim DB1 As Database
Dim TD as TableDef
Dim FLD as Field
Dim Db as Database
Dim qdf As QueryDef
Dim chSQL As String


'on cree le fichier access ou vous le desirez
Set DB1 = CreateDatabase("c:\????\????\????.mdb", dbLangGeneral)

'suprimer une base
Kill ("C:\????\????\????.mdb")

'on ouvre la base creer
Set DB1 = OpenDatabase("c:\????.mdb")

'on cree la table que j appelle ici plan_inventaire
Set TF = DB.CreateTableDef("plan_inventaire")

'on creer ici 3 champ (produit, n_produit, nom_produit) dans la table plan prealablement ouverte

Set FLD = TF.CreateField("produit", dbInteger)
TF.Fields.Append FLD

Set FLD = TF.CreateField("n_produit", dbText, 20)
TF.Fields.Append FLD

Set FLD = TF.CreateField("nom_produit", dbText, 20)
TF.Fields.Append FLD
DB1.TableDefs.Append TF

'fermeture de la base
DB1.close 



'-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


'POUR LIER UN FICHIER EXCEL A ACCESS SOUS VB



'ouverture de la table creer
Db.OpenCurrentDatabase ("c:\????\????\????.mdb")

'Commande pour lier le fichier excel a access en creant une table que l'on appellera ici plan
DoCmd.TransferSpreadsheet acImport, 8, "plan_", (C:\????\????\????.xls), True, ""

'Suppression de la table plan creer auparavant
DoCmd.DeleteObject acTable, "plan_inventaire"

Db.CloseCurrentDatabase



'-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

'CREER UNE REQUETE ET L EXECUTER


'on ouvre notre base
Set Db= OpenDatabase("c:\????\????\????.mdb")
Db.QueryDefs.Refresh
' Test d'existence de la requete  si la requête NouvelleRequête existe, la supprime.Sinon la creer
    For Each qdf In Db.QueryDefs
        If qdf.Name = "NouvelleRequete" Then
          Db.QueryDefs.Delete qdf.Name
       End If
Next qdf
    
    

'Creer n importe qu elle requete sous access puis toujours sous access cliquer sur modifier puis sur moder sql copier toute la chaine sql et placer la tous simplement entre les de guillemet 
'On stock notre chaine SQL dans chSQL (selection des champs + critere)
chSQL = "????????????votre chaine SQL????????????????ex: SELECT plan_.[Secteur_(Appli)], plan_.Lieu INTO plan From plan_ WHERE (((plan_.[Secteur_(Appli)])>0));??????????????????????????????????????????"


'                                  On cree la requete

'Creation de la requete "nouvellerequete"
Set qdf = Db.CreateQueryDef("NouvelleRequete", chSQL)
qdf.Close
Db.Close

'                                          On execute la requete

'ouvre la base
Db.OpenCurrentDatabase ("????\????\????\????.mdb")
'On donne un nom a notre requete
stDocName = "NouvelleRequete"
On execute la requete
DoCmd.OpenQuery stDocName, acNormal, acEdit
Db.CloseCurrentDatabase


'Et voila c est fini j espere que mon code pourra en aider quelqu un 
  

Commentaires et avis

signaler à un administrateur
Commentaire de ria94 le 07/07/2003 17:45:42

En cas de probleme ou d'incomprehension laisser un commentaire que je puisse améliorer ma source.

signaler à un administrateur
Commentaire de ria94 le 07/07/2003 17:45:42

En cas de probleme ou d'incomprehension laisser un commentaire que je puisse améliorer ma source.

signaler à un administrateur
Commentaire de tocatoca le 09/07/2003 11:31:23

C'est bien simple et explicite mais tu pourrais mettre ta source a jour en rajoutant des fonctions souvent utilisées tel que l'impression supprimer un champ et pas mal d'autre choses ....
Bonne continuation.

signaler à un administrateur
Commentaire de ria94 le 10/07/2003 17:43:30

Bientot je vais la mettre a jour

signaler à un administrateur
Commentaire de ria94 le 10/07/2003 17:45:07

Avec tous plein de fonction en plus tel que imprimer une table, modifier un champ faire tous ce qu'on veux avec access sous vb.

signaler à un administrateur
Commentaire de llefe le 21/08/2003 01:39:47

super
ce code fonctionne très avec asp
par contre l'ouverture de la base m'a créé un lock que
je n'arrive pas à supprimer ...
enfin c'est un détail.

signaler à un administrateur
Commentaire de RockmanX le 17/12/2003 12:11:51

ouais mais il y a un truc qui marche pas.
j'utilise access mais avec des tables liées et j'aimerais rajouter un champs dasn une des tables liées.
ca ne marche pas.
tu as une idée?

signaler à un administrateur
Commentaire de riverdance le 01/07/2004 17:27:50

c nuuuuuuuuuuulllllllllllllllllll et bonjour aussi

signaler à un administrateur
Commentaire de gourou52 le 29/07/2004 15:11:48

Je trouve ca vraiment jenial, mais suis très très novice.
B'est la premiere fois que jutilise access et vb et sql.

Je trouve ce code super bien fait mem si je doit chercher pourqoi j'ai une erreur 91 lors de la creation de la table, je voudrais importer un fichier txt dans une table et seul repere est des caractere speciaus style (ü) Si qu'elqu'un a une idee mercie beaucoup a tous ce site est super

signaler à un administrateur
Commentaire de gourou52 le 29/07/2004 15:13:07

Pardon pour les faut d’orthographe

signaler à un administrateur
Commentaire de addamsmercredi le 13/10/2004 11:11:22

DoCmd c'est un objet de quel type ?
Il n'est déclaré nulle part dans le code et moi Visual Basic ne connaît pas.

signaler à un administrateur
Commentaire de ricomiracle le 26/04/2005 10:31:53

Quand j'execute le code g une erreur:
Invalid outside procedure

sur le Set (le premier) pourkoi?
Desolé je debute ss VB

signaler à un administrateur
Commentaire de grayou2005 le 02/11/2005 13:40:24

salut
suis nouveau et je voudrais savoir comment récupérer le résultat de tes requetes pour pouvoir les traiter ...
je sais pas si je suis clair mais je souhaiterai récupérer le resultat d'une requete et effectuer des actions en fonction des valeurs obtenues par la requete et je patauge complètement

merci d'avance
@pluche

signaler à un administrateur
Commentaire de sbbois le 05/12/2005 08:56:40

salut Ria94, Bien le code. mais comment fait tu pour supprimer une table?

signaler à un administrateur
Commentaire de ria94 le 05/12/2005 15:25:57

Salut sbbois
Bon ca fait super longtemps que j'ai pas touché à ce code et que j'ai pas fait de vb
mais en relisant mon code vite fait j'ai pas testé mais je ferai comme ca :

Db.OpenCurrentDatabase ("????\????\????\????.mdb")
'On donne un nom a notre requete
stDocName = "DROP TABLE Nom_de_la_table" // ici tu mets t'as requete pour supprimer une table
'On execute la requete
DoCmd.OpenQuery stDocName, acNormal, acEdit
Db.CloseCurrentDatabase


Bonne chance
++

signaler à un administrateur
Commentaire de sbbois le 05/12/2005 15:29:45

Ok merci ria94.

signaler à un administrateur
Commentaire de black_ghost le 12/02/2006 17:48:16

merci bcp, je vais l'essaiyé et si quelqu'un sais comment copier une feuille excel vers une table access et merci. (voici mon email pour me proposé d'aide "silitix@yahoo.fr" merci d'avance).

signaler à un administrateur
Commentaire de kewgon le 28/06/2006 15:33:51

salut

chez moi ce code ne fonctionne pas :-(

quand je lance le programme sous excel (office 2003), il me dit sur la ligne

Dim DB1 As Database

type defini par l'utilisateur non defini !

il me manque surement quelque chose
aidez moi svp

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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,452 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é.