HELP ! pas de creation de champ>9 !!! plantage au 10° --ACCESS -- base de don

cs_erwan Messages postés 17 Date d'inscription vendredi 22 février 2002 Statut Membre Dernière intervention 25 mai 2002 - 28 avril 2002 à 10:24
cs_erwan Messages postés 17 Date d'inscription vendredi 22 février 2002 Statut Membre Dernière intervention 25 mai 2002 - 28 avril 2002 à 16:08
voici le code de ma form :
je veux pouvoir créer jusqu'à 50 champs pour y intégrer une table excel mais ca plante au dixième !!!
qui peut me dire pourquoi ???
merci !

LES BOUTONS :
Command1 pour lancer la création
QUITTER ... pour quitter !

LE CODE :

Option Explicit

Private Sub Form_Load()

Call CreatBase

End Sub

' ici on va créer la base !
' création base de données "ACCESS 95"

Private Sub Command1_Click()

Dim db01, db02, db03, db04, db05, db06, db07, db08, db09, dbb1 As Field
Dim db11, db12, db13, db14, db15, db16, db17, db18, db19, dbb2 As Field
Dim db21, db22, db23, db24, db25, db26, db27, db28, db29, dbb3 As Field
Dim db31, db32, db33, db34, db35, db36, db37, db38, db39, dbb4 As Field
Dim db41, db42, db43, db44, db45, db46, db47, db48, db49, dbb5 As Field

Dim typechamp As String

'Create data access objects
Set dbWorkspace = DBEngine.Workspaces(0)

Set dbDatabase = dbWorkspace.CreateDatabase(App.Path & "" & base & ".mdb", dbLangGeneral) ' on crée ici la base de données
'Set dbTableDef = dbDatabase.CreateTableDef(table) ' on crée ici la Table dans la base

'------- reprise code origine --------

Set dbTableDef = dbDatabase.CreateTableDef(table)

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

' ici on met une boucle sur 50 lignes !

i01:
demande = InputBox("nom du champ 1 ")
typechamp = InputBox("tye de champ : 1=clé auto - 2=texte - 3=numérique - 4=mémo")
Set db01 = dbTableDef.CreateField(demande, typechamp) ' Memo est le type de champ (Memo Text Numérique etc etc )
'db01.Size = 30 'definition des propriétés des champs
dbTableDef.Fields.Append db01 'Append each field object to its table object
If nombreboucle > 1 Then GoTo i02 Else GoTo finboucle

i02:
demande = InputBox("nom du champ 2 ")
Set db02 = dbTableDef.CreateField(demande, dbMemo)
'db02.Size = 30
dbTableDef.Fields.Append db02
If nombreboucle > 2 Then GoTo i03 Else GoTo finboucle

i03:
demande = InputBox("nom du champ 3 ")
Set db03 = dbTableDef.CreateField(demande, dbMemo)
'db03.Size = 30
dbTableDef.Fields.Append db03
If nombreboucle > 3 Then GoTo i04 Else GoTo finboucle

i04:
demande = InputBox("nom du champ 4 ")
Set db04 = dbTableDef.CreateField(demande, dbMemo)
'db04.Size = 30
dbTableDef.Fields.Append db04
If nombreboucle > 4 Then GoTo i05 Else GoTo finboucle

i05:
demande = InputBox("nom du champ 5 ")
Set db05 = dbTableDef.CreateField(demande, dbMemo)
'db05.Size = 30
dbTableDef.Fields.Append db05
If nombreboucle > 5 Then GoTo i06 Else GoTo finboucle

i06:
demande = InputBox("nom du champ 6 ")
Set db06 = dbTableDef.CreateField(demande, dbMemo)
'db06.Size = 30
dbTableDef.Fields.Append db06
If nombreboucle > 6 Then GoTo i07 Else GoTo finboucle

i07:
demande = InputBox("nom du champ 7 ")
Set db07 = dbTableDef.CreateField(demande, dbMemo)
'db07.Size = 30
dbTableDef.Fields.Append db07
If nombreboucle > 7 Then GoTo i08 Else GoTo finboucle

i08:
demande = InputBox("nom du champ 8 ")
Set db08 = dbTableDef.CreateField(demande, dbMemo)
'db08.Size = 30
dbTableDef.Fields.Append db08
If nombreboucle > 8 Then GoTo i09 Else GoTo finboucle

i09:
demande = InputBox("nom du champ 9 ")
Set db09 = dbTableDef.CreateField(demande, dbMemo)
'db09.Size = 30
dbTableDef.Fields.Append db09
If nombreboucle > 9 Then GoTo i10 Else GoTo finboucle

i10:
demande = InputBox("nom du champ 10 ")
Set dbb1 = dbTableDef.CreateField(demande, dbMemo)
'dbb1.Size = 30
dbTableDef.Fields.Append dbb1
If nombreboucle > 10 Then GoTo i11 Else GoTo finboucle

i11:
demande = InputBox("nom du champ 11 ")
Set db11 = dbTableDef.CreateField(demande, dbMemo)
'db11.Size = 30
dbTableDef.Fields.Append db11
If nombreboucle > 11 Then GoTo i12 Else GoTo finboucle

i12:
demande = InputBox("nom du champ 12 ")
Set db12 = dbTableDef.CreateField(demande, dbMemo)
'db12.Size = 30
dbTableDef.Fields.Append db12
If nombreboucle > 12 Then GoTo i13 Else GoTo finboucle

i13:
demande = InputBox("nom du champ 13 ")
Set db13 = dbTableDef.CreateField(demande, dbMemo)
'db13.Size = 30
dbTableDef.Fields.Append db13
If nombreboucle > 13 Then GoTo i14 Else GoTo finboucle

i14:
demande = InputBox("nom du champ 14 ")
Set db14 = dbTableDef.CreateField(demande, dbMemo)
'db14.Size = 30
dbTableDef.Fields.Append db14
If nombreboucle > 14 Then GoTo i15 Else GoTo finboucle

i15:
demande = InputBox("nom du champ 15 ")
Set db15 = dbTableDef.CreateField(demande, dbMemo)
'db15.Size = 30
dbTableDef.Fields.Append db15
If nombreboucle > 15 Then GoTo i16 Else GoTo finboucle

i16:
demande = InputBox("nom du champ 16 ")
Set db16 = dbTableDef.CreateField(demande, dbMemo)
'db16.Size = 30
dbTableDef.Fields.Append db16
If nombreboucle > 16 Then GoTo i17 Else GoTo finboucle

i17:
demande = InputBox("nom du champ 17 ")
Set db17 = dbTableDef.CreateField(demande, dbMemo)
'db17.Size = 30
dbTableDef.Fields.Append db17
If nombreboucle > 17 Then GoTo i18 Else GoTo finboucle

i18:
demande = InputBox("nom du champ 18 ")
Set db18 = dbTableDef.CreateField(demande, dbMemo)
'db18.Size = 30
dbTableDef.Fields.Append db18
If nombreboucle > 18 Then GoTo i19 Else GoTo finboucle

i19:
demande = InputBox("nom du champ 19 ")
Set db19 = dbTableDef.CreateField(demande, dbMemo)
'db19.Size = 30
dbTableDef.Fields.Append db19
If nombreboucle > 19 Then GoTo i20 Else GoTo finboucle

i20:
demande = InputBox("nom du champ 20 ")
Set dbb2 = dbTableDef.CreateField(demande, dbMemo)
'dbb2.Size = 30
dbTableDef.Fields.Append dbb2
If nombreboucle > 20 Then GoTo i21 Else GoTo finboucle

i21:
demande = InputBox("nom du champ 21 ")
Set db21 = dbTableDef.CreateField(demande, dbMemo)
'db21.Size = 30
dbTableDef.Fields.Append db21
If nombreboucle > 21 Then GoTo i22 Else GoTo finboucle

i22:
demande = InputBox("nom du champ 22 ")
Set db22 = dbTableDef.CreateField(demande, dbMemo)
'db22.Size = 30
dbTableDef.Fields.Append db22
If nombreboucle > 22 Then GoTo i23 Else GoTo finboucle

i23:
demande = InputBox("nom du champ 23 ")
Set db23 = dbTableDef.CreateField(demande, dbMemo)
'db23.Size = 30
dbTableDef.Fields.Append db23
If nombreboucle > 23 Then GoTo i24 Else GoTo finboucle

i24:
demande = InputBox("nom du champ 24 ")
Set db24 = dbTableDef.CreateField(demande, dbMemo)
'db24.Size = 30
dbTableDef.Fields.Append db24
If nombreboucle > 24 Then GoTo i25 Else GoTo finboucle

i25:
demande = InputBox("nom du champ 25 ")
Set db25 = dbTableDef.CreateField(demande, dbMemo)
'db25.Size = 30
dbTableDef.Fields.Append db25
If nombreboucle > 25 Then GoTo i26 Else GoTo finboucle

i26:
demande = InputBox("nom du champ 26 ")
Set db26 = dbTableDef.CreateField(demande, dbMemo)
'db26.Size = 30
dbTableDef.Fields.Append db26
If nombreboucle > 26 Then GoTo i27 Else GoTo finboucle

i27:
demande = InputBox("nom du champ 27 ")
Set db27 = dbTableDef.CreateField(demande, dbMemo)
'db27.Size = 30
dbTableDef.Fields.Append db27
If nombreboucle > 27 Then GoTo i28 Else GoTo finboucle

i28:
demande = InputBox("nom du champ 28 ")
Set db28 = dbTableDef.CreateField(demande, dbMemo)
'db28.Size = 30
dbTableDef.Fields.Append db28
If nombreboucle > 28 Then GoTo i29 Else GoTo finboucle

i29:
demande = InputBox("nom du champ 29 ")
Set db29 = dbTableDef.CreateField(demande, dbMemo)
'db29.Size = 30
dbTableDef.Fields.Append db29
If nombreboucle > 29 Then GoTo i30 Else GoTo finboucle

i30:
demande = InputBox("nom du champ 30 ")
Set dbb3 = dbTableDef.CreateField(demande, dbMemo)
'dbb3.Size = 30
dbTableDef.Fields.Append dbb3
If nombreboucle > 30 Then GoTo i31 Else GoTo finboucle

i31:
demande = InputBox("nom du champ 31 ")
Set db31 = dbTableDef.CreateField(demande, dbMemo)
'db31.Size = 30
dbTableDef.Fields.Append db31
If nombreboucle > 31 Then GoTo i32 Else GoTo finboucle

i32:
demande = InputBox("nom du champ 32 ")
Set db32 = dbTableDef.CreateField(demande, dbMemo)
'db32.Size = 30
dbTableDef.Fields.Append db32
If nombreboucle > 32 Then GoTo i33 Else GoTo finboucle

i33:
demande = InputBox("nom du champ 33 ")
Set db33 = dbTableDef.CreateField(demande, dbMemo)
'db33.Size = 30
dbTableDef.Fields.Append db33
If nombreboucle > 33 Then GoTo i34 Else GoTo finboucle

i34:
demande = InputBox("nom du champ 34 ")
Set db34 = dbTableDef.CreateField(demande, dbMemo)
'db34.Size = 30
dbTableDef.Fields.Append db34
If nombreboucle > 34 Then GoTo i35 Else GoTo finboucle

i35:
demande = InputBox("nom du champ 35 ")
Set db35 = dbTableDef.CreateField(demande, dbMemo)
'db35.Size = 30
dbTableDef.Fields.Append db35
If nombreboucle > 35 Then GoTo i36 Else GoTo finboucle

i36:
demande = InputBox("nom du champ 36 ")
Set db36 = dbTableDef.CreateField(demande, dbMemo)
'db36.Size = 30
dbTableDef.Fields.Append db36
If nombreboucle > 36 Then GoTo i37 Else GoTo finboucle

i37:
demande = InputBox("nom du champ 37 ")
Set db37 = dbTableDef.CreateField(demande, dbMemo)
'db37.Size = 30
dbTableDef.Fields.Append db37
If nombreboucle > 37 Then GoTo i38 Else GoTo finboucle

i38:
demande = InputBox("nom du champ 38 ")
Set db38 = dbTableDef.CreateField(demande, dbMemo)
'db38.Size = 30
dbTableDef.Fields.Append db38
If nombreboucle > 38 Then GoTo i39 Else GoTo finboucle

i39:
demande = InputBox("nom du champ 39 ")
Set db39 = dbTableDef.CreateField(demande, dbMemo)
'db39.Size = 30
dbTableDef.Fields.Append db39
If nombreboucle > 39 Then GoTo i40 Else GoTo finboucle

i40:
demande = InputBox("nom du champ 40 ")
Set dbb4 = dbTableDef.CreateField(demande, dbMemo)
'dbb4.Size = 30
dbTableDef.Fields.Append dbb4
If nombreboucle > 40 Then GoTo i41 Else GoTo finboucle

i41:
demande = InputBox("nom du champ 41 ")
Set db41 = dbTableDef.CreateField(demande, dbMemo)
'db41.Size = 30
dbTableDef.Fields.Append db41
If nombreboucle > 41 Then GoTo i42 Else GoTo finboucle

i42:
demande = InputBox("nom du champ 42 ")
Set db42 = dbTableDef.CreateField(demande, dbMemo)
'db42.Size = 30
dbTableDef.Fields.Append db42
If nombreboucle > 42 Then GoTo i43 Else GoTo finboucle

i43:
demande = InputBox("nom du champ 43 ")
Set db43 = dbTableDef.CreateField(demande, dbMemo)
'db43.Size = 30
dbTableDef.Fields.Append db43
If nombreboucle > 43 Then GoTo i44 Else GoTo finboucle

i44:
demande = InputBox("nom du champ 44 ")
Set db44 = dbTableDef.CreateField(demande, dbMemo)
'db44.Size = 30
dbTableDef.Fields.Append db44
If nombreboucle > 44 Then GoTo i45 Else GoTo finboucle

i45:
demande = InputBox("nom du champ 45 ")
Set db45 = dbTableDef.CreateField(demande, dbMemo)
'db45.Size = 30
dbTableDef.Fields.Append db45
If nombreboucle > 45 Then GoTo i46 Else GoTo finboucle

i46:
demande = InputBox("nom du champ 46 ")
Set db46 = dbTableDef.CreateField(demande, dbMemo)
'db46.Size = 30
dbTableDef.Fields.Append db46
If nombreboucle > 46 Then GoTo i47 Else GoTo finboucle

i47:
demande = InputBox("nom du champ 47 ")
Set db47 = dbTableDef.CreateField(demande, dbMemo)
'db47.Size = 30
dbTableDef.Fields.Append db47
If nombreboucle > 47 Then GoTo i48 Else GoTo finboucle

i48:
demande = InputBox("nom du champ 48 ")
Set db48 = dbTableDef.CreateField(demande, dbMemo)
'db48.Size = 30
dbTableDef.Fields.Append db48
If nombreboucle > 48 Then GoTo i49 Else GoTo finboucle

i49:
demande = InputBox("nom du champ 49 ")
Set db49 = dbTableDef.CreateField(demande, dbMemo)
'db49.Size = 30
dbTableDef.Fields.Append db49
If nombreboucle > 49 Then GoTo i50 Else GoTo finboucle

i50:
demande = InputBox("nom du champ 50 ")
Set dbb5 = dbTableDef.CreateField(demande, dbMemo)
'dbb5.Size = 30
dbTableDef.Fields.Append dbb5
If nombreboucle > 50 Then GoTo i51 Else GoTo finboucle

i51:
MsgBox ("Vous avez rentré trop d'enregistrements ! désolé mais le nombre maximum de champs intégrable est de 50 !")
Unload Me

finboucle:

'Append each table to its database
dbDatabase.TableDefs.Append dbTableDef

dbDatabase.Close
MsgBox ("La base de données" & base & " contenant la table " & table & " est créée... !!!")

' ############################

finprogramme:

End Sub

Private Sub QUITTER_Click()

Unload Me

End Sub

2 réponses

TFlorian Messages postés 194 Date d'inscription dimanche 3 mars 2002 Statut Membre Dernière intervention 19 décembre 2005 3
28 avril 2002 à 15:29
Bonjour,

Je pence avoir trouver un baton ;-)

db08
db09
dbb1 --<--<-<-<-<-<-<-<-<-<-<
db11

il est las ton os je pence !!
Tu en a un autre plus bas
(20,30,40,50)
c'est peut etre cela !

mais une astuce de programation :
pour des bouche repetitive , il veau toujours mieux utiliser un principe de boucle :

Dim db(50)

For persent = 0 To nombreboucle

demande = InputBox("nom du champ " & persent & " ")
Set db(persent) = dbTableDef.CreateField(demande, dbMemo)
dbTableDef.Fields.Append db(persent)

Next

et la tu peut guerrer 200 400 ... tu n'est plus limite !
et si tu veux changer le message c'est symple tu le change une fois pour toutes !!!
(les movaises langues diron "Mais il existe ramplacer" ... non pas quand il y a eu une faute de frape comme ici semble t'il !

en tout cas pour le debugage c'est plus simple !

d'autres problemes n'esite pas ;-)

TFlorian
0
cs_erwan Messages postés 17 Date d'inscription vendredi 22 février 2002 Statut Membre Dernière intervention 25 mai 2002
28 avril 2002 à 16:08
Je t'aime !!!

non je plaisante mais je ne sais pas comment, ca marche car avant, mon VB voulait pas prendre le type de champ vbtext ou vbmemo mais maintenant ca marche !!!

YAHOOOOO!!!
0
Rejoignez-nous