OVH Cloud OVH Cloud

access 97 à 2K

7 réponses
Avatar
NicolasB
encore bonjour

A l'avenir je reterai dans le m=EAme fil.

Sous access 97 j'ai du code qui fonctionne tr=E8s bien.=20
Aujourd'hui on me demande de mettre la base sous access=20
2000, mais le code qui fonctionne sous 97 ne fonctionne=20
plus avec 2000. Pouvez vous m'aider??

Voici le code 97 que j'aimerais faire fonctionner sous 2000


db.TableDefs("tblBudgetForm").Fields.Delete "Counter"
Set fld =3D db.TableDefs("tblBudgetForm").CreateField
("Counter", dbLong)
fld.Attributes =3D dbAutoIncrField
db.TableDefs("tblBudgetForm").Fields.Append fld

Merci pour votre aide

7 réponses

Avatar
Damien Mermoz
Salut,

grand classique du rire, c'est pas ton code qui pose pb mais tes références
1) dans VBE OutilsRéférence
Coche la ref DAO3.6.dll
Puis remonte cette référence au dessus de ADO (access croit que tu veux
utiliser ADO dans ton code)
Maintenant ça marche mais je te propose de faire en plus ceci

2)
Dans tes déclarations à la place de
dim db as database
tu écris dim db as dao.database
et donc aussi
dim fld as dao.field

Avec ça au moins tu ne risques plus d'avoir de pb.

A +
Damien.
"NicolasB" a écrit dans le message
news: 102501c3b434$5dd86e30$
encore bonjour

A l'avenir je reterai dans le même fil.

Sous access 97 j'ai du code qui fonctionne très bien.
Aujourd'hui on me demande de mettre la base sous access
2000, mais le code qui fonctionne sous 97 ne fonctionne
plus avec 2000. Pouvez vous m'aider??

Voici le code 97 que j'aimerais faire fonctionner sous 2000


db.TableDefs("tblBudgetForm").Fields.Delete "Counter"
Set fld = db.TableDefs("tblBudgetForm").CreateField
("Counter", dbLong)
fld.Attributes = dbAutoIncrField
db.TableDefs("tblBudgetForm").Fields.Append fld

Merci pour votre aide
Avatar
NicolasB
Merci pour ton aide je vais maintenant faire tous ce qui
est écris. Encore un grand merci.

@+
-----Message d'origine-----
Salut,

grand classique du rire, c'est pas ton code qui pose pb
mais tes références

1) dans VBE OutilsRéférence
Coche la ref DAO3.6.dll
Puis remonte cette référence au dessus de ADO (access
croit que tu veux

utiliser ADO dans ton code)
Maintenant ça marche mais je te propose de faire en plus
ceci


2)
Dans tes déclarations à la place de
dim db as database
tu écris dim db as dao.database
et donc aussi
dim fld as dao.field

Avec ça au moins tu ne risques plus d'avoir de pb.

A +
Damien.
"NicolasB" a écrit
dans le message

news: 102501c3b434$5dd86e30$
encore bonjour

A l'avenir je reterai dans le même fil.

Sous access 97 j'ai du code qui fonctionne très bien.
Aujourd'hui on me demande de mettre la base sous access
2000, mais le code qui fonctionne sous 97 ne fonctionne
plus avec 2000. Pouvez vous m'aider??

Voici le code 97 que j'aimerais faire fonctionner sous
2000



db.TableDefs("tblBudgetForm").Fields.Delete "Counter"
Set fld = db.TableDefs("tblBudgetForm").CreateField
("Counter", dbLong)
fld.Attributes = dbAutoIncrField
db.TableDefs("tblBudgetForm").Fields.Append fld

Merci pour votre aide



.



Avatar
NicolasB
Salut damien
J'ai bien suivi tes instructions, mais cela ne fonctionne
tjrs pas

Il ne supprime pas le champ counter de la table et ne
remet pas à zéro par la même occasion.

A l'aide je ne sais plus à quel saint me vouer. :-)

-----Message d'origine-----
Merci pour ton aide je vais maintenant faire tous ce qui
est écris. Encore un grand merci.

@+
-----Message d'origine-----
Salut,

grand classique du rire, c'est pas ton code qui pose pb
mais tes références

1) dans VBE OutilsRéférence
Coche la ref DAO3.6.dll
Puis remonte cette référence au dessus de ADO (access
croit que tu veux

utiliser ADO dans ton code)
Maintenant ça marche mais je te propose de faire en plus
ceci


2)
Dans tes déclarations à la place de
dim db as database
tu écris dim db as dao.database
et donc aussi
dim fld as dao.field

Avec ça au moins tu ne risques plus d'avoir de pb.

A +
Damien.
"NicolasB" a écrit
dans le message

news: 102501c3b434$5dd86e30$
encore bonjour

A l'avenir je reterai dans le même fil.

Sous access 97 j'ai du code qui fonctionne très bien.
Aujourd'hui on me demande de mettre la base sous access
2000, mais le code qui fonctionne sous 97 ne fonctionne
plus avec 2000. Pouvez vous m'aider??

Voici le code 97 que j'aimerais faire fonctionner sous
2000



db.TableDefs("tblBudgetForm").Fields.Delete "Counter"
Set fld = db.TableDefs("tblBudgetForm").CreateField
("Counter", dbLong)
fld.Attributes = dbAutoIncrField
db.TableDefs("tblBudgetForm").Fields.Append fld

Merci pour votre aide



.

.





Avatar
Damien Mermoz
Bonjour Nicolas,
t'as du te planter quelque part dans ce que je t'ai dit. Je suis sur
Access2000 je viens de tester ton code ça marche

Private Sub Commande23_Click()
Dim db As DAO.Database
Dim fld As DAO.Field

Set db = CurrentDb
db.TableDefs("tblBudgetForm").Fields.Delete "Counter"
MsgBox "beta : suppr"
Set fld = db.TableDefs("tblBudgetForm").CreateField("Counter", dbLong)
MsgBox "beta : ajout"
fld.Attributes = dbAutoIncrField
db.TableDefs("tblBudgetForm").Fields.Append fld

db.Close
Set fld = Nothing
Set db = Nothing
End Sub

mes ref cochés sont :
VBA
Access 9
DAO 3.6
OLE
ADO
...
vérifies tes réf, puis compiles (débogageCompiler [nom de ta base] dans
VBE )
Si ca passe pas à la compil corriger jusqu'à ce que ca passe.
Ensuite tu devrais plus avoir de pb.

Au pire tu m'envoi ta base compacter ziper (enlève le ns_) je regarderai
dans la journée

A +
Damien.
"NicolasB" a écrit dans le message
news: 086601c3b4c1$c96f7ac0$
Salut damien
J'ai bien suivi tes instructions, mais cela ne fonctionne
tjrs pas

Il ne supprime pas le champ counter de la table et ne
remet pas à zéro par la même occasion.

A l'aide je ne sais plus à quel saint me vouer. :-)

-----Message d'origine-----
Merci pour ton aide je vais maintenant faire tous ce qui
est écris. Encore un grand merci.

@+
-----Message d'origine-----
Salut,

grand classique du rire, c'est pas ton code qui pose pb
mais tes références

1) dans VBE OutilsRéférence
Coche la ref DAO3.6.dll
Puis remonte cette référence au dessus de ADO (access
croit que tu veux

utiliser ADO dans ton code)
Maintenant ça marche mais je te propose de faire en plus
ceci


2)
Dans tes déclarations à la place de
dim db as database
tu écris dim db as dao.database
et donc aussi
dim fld as dao.field

Avec ça au moins tu ne risques plus d'avoir de pb.

A +
Damien.
"NicolasB" a écrit
dans le message

news: 102501c3b434$5dd86e30$
encore bonjour

A l'avenir je reterai dans le même fil.

Sous access 97 j'ai du code qui fonctionne très bien.
Aujourd'hui on me demande de mettre la base sous access
2000, mais le code qui fonctionne sous 97 ne fonctionne
plus avec 2000. Pouvez vous m'aider??

Voici le code 97 que j'aimerais faire fonctionner sous
2000



db.TableDefs("tblBudgetForm").Fields.Delete "Counter"
Set fld = db.TableDefs("tblBudgetForm").CreateField
("Counter", dbLong)
fld.Attributes = dbAutoIncrField
db.TableDefs("tblBudgetForm").Fields.Append fld

Merci pour votre aide



.

.





Avatar
Raymond [mvp]
Bonjour Damien.

Ta procédure fonctionne très bien mais tu aurais tu préciser qu'il faut
que:
- la table ne soit pas utilisée (vérifier que le formulaire n'est pas basé
sur cette table)
- qu'il ne peut exister qu'un seul champ numauto dans une table
- mettre on error resume next car toute erreur stoppe la procédure.
Nicolas doit se trouver dans un de ces cas
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour une meilleure
efficacité de tes interventions sur MPFA


"Damien Mermoz" a écrit dans le message de
news:%
Bonjour Nicolas,
t'as du te planter quelque part dans ce que je t'ai dit. Je suis sur
Access2000 je viens de tester ton code ça marche

Private Sub Commande23_Click()
Dim db As DAO.Database
Dim fld As DAO.Field

Set db = CurrentDb
db.TableDefs("tblBudgetForm").Fields.Delete "Counter"
MsgBox "beta : suppr"
Set fld = db.TableDefs("tblBudgetForm").CreateField("Counter", dbLong)
MsgBox "beta : ajout"
fld.Attributes = dbAutoIncrField
db.TableDefs("tblBudgetForm").Fields.Append fld

db.Close
Set fld = Nothing
Set db = Nothing
End Sub

mes ref cochés sont :
VBA
Access 9
DAO 3.6
OLE
ADO
...
vérifies tes réf, puis compiles (débogageCompiler [nom de ta base] dans
VBE )
Si ca passe pas à la compil corriger jusqu'à ce que ca passe.
Ensuite tu devrais plus avoir de pb.

Au pire tu m'envoi ta base compacter ziper (enlève le ns_) je regarderai
dans la journée

A +
Damien.


Avatar
Damien Mermoz
Bonjour Raymond

oui c'est vrai mais ce type d'erreur serait aussi apparue sur 97 non ? Or
Nicolas n'avait pas de pb sur 97.
Ce qui me surprend c'est que son champ counter ne soit pas clé primaire car
cela aurait pu expliquer l'erreur.
Et puis de toute façon il a changé de fil :-)

A +
Damien.

"Raymond [mvp]" a écrit dans le message news:

Bonjour Damien.

Ta procédure fonctionne très bien mais tu aurais tu préciser qu'il faut
que:
- la table ne soit pas utilisée (vérifier que le formulaire n'est pas basé
sur cette table)
- qu'il ne peut exister qu'un seul champ numauto dans une table
- mettre on error resume next car toute erreur stoppe la procédure.
Nicolas doit se trouver dans un de ces cas
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour une meilleure
efficacité de tes interventions sur MPFA


"Damien Mermoz" a écrit dans le message de
news:%
Bonjour Nicolas,
t'as du te planter quelque part dans ce que je t'ai dit. Je suis sur
Access2000 je viens de tester ton code ça marche

Private Sub Commande23_Click()
Dim db As DAO.Database
Dim fld As DAO.Field

Set db = CurrentDb
db.TableDefs("tblBudgetForm").Fields.Delete "Counter"
MsgBox "beta : suppr"
Set fld = db.TableDefs("tblBudgetForm").CreateField("Counter", dbLong)
MsgBox "beta : ajout"
fld.Attributes = dbAutoIncrField
db.TableDefs("tblBudgetForm").Fields.Append fld

db.Close
Set fld = Nothing
Set db = Nothing
End Sub

mes ref cochés sont :
VBA
Access 9
DAO 3.6
OLE
ADO
...
vérifies tes réf, puis compiles (débogageCompiler [nom de ta base]
dans


VBE )
Si ca passe pas à la compil corriger jusqu'à ce que ca passe.
Ensuite tu devrais plus avoir de pb.

Au pire tu m'envoi ta base compacter ziper (enlève le ns_) je regarderai
dans la journée

A +
Damien.






Avatar
NicolasB
Je m'excuse d'avoir changer de fil c'est une mauvaise
habitude

toute mes excuses :-(
-----Message d'origine-----
Bonjour Raymond

oui c'est vrai mais ce type d'erreur serait aussi apparue
sur 97 non ? Or

Nicolas n'avait pas de pb sur 97.
Ce qui me surprend c'est que son champ counter ne soit
pas clé primaire car

cela aurait pu expliquer l'erreur.
Et puis de toute façon il a changé de fil :-)

A +
Damien.

"Raymond [mvp]" a écrit dans
le message news:


Bonjour Damien.

Ta procédure fonctionne très bien mais tu aurais tu
préciser qu'il faut


que:
- la table ne soit pas utilisée (vérifier que le
formulaire n'est pas basé


sur cette table)
- qu'il ne peut exister qu'un seul champ numauto dans
une table


- mettre on error resume next car toute erreur stoppe
la procédure.


Nicolas doit se trouver dans un de ces cas
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour une meilleure
efficacité de tes interventions sur MPFA


"Damien Mermoz" a écrit
dans le message de


news:%
Bonjour Nicolas,
t'as du te planter quelque part dans ce que je t'ai
dit. Je suis sur



Access2000 je viens de tester ton code ça marche

Private Sub Commande23_Click()
Dim db As DAO.Database
Dim fld As DAO.Field

Set db = CurrentDb
db.TableDefs("tblBudgetForm").Fields.Delete "Counter"
MsgBox "beta : suppr"
Set fld = db.TableDefs("tblBudgetForm").CreateField
("Counter", dbLong)



MsgBox "beta : ajout"
fld.Attributes = dbAutoIncrField
db.TableDefs("tblBudgetForm").Fields.Append fld

db.Close
Set fld = Nothing
Set db = Nothing
End Sub

mes ref cochés sont :
VBA
Access 9
DAO 3.6
OLE
ADO
...
vérifies tes réf, puis compiles (débogageCompiler
[nom de ta base]



dans
VBE )
Si ca passe pas à la compil corriger jusqu'à ce que
ca passe.



Ensuite tu devrais plus avoir de pb.

Au pire tu m'envoi ta base compacter ziper (enlève le
ns_) je regarderai



dans la journée

A +
Damien.






.