Pb Access 2000 très urgent!!!!!!!!!!!!!!!

Stephle Messages postés 10 Date d'inscription lundi 17 mars 2003 Statut Membre Dernière intervention 3 août 2004 - 24 juin 2003 à 12:43
cs_Draconagi Messages postés 34 Date d'inscription vendredi 9 avril 2004 Statut Membre Dernière intervention 9 octobre 2006 - 27 avril 2004 à 14:43
Salut,

UN gros prob avec Access.

Je génère des requêtes SQL pour changer le type de données d'une table Access

Je m'explique: Access possède des données de type Integer, je veux les changer en Varchar

La requete est la suivante (en VB):

SQL = "ALTER TABLE " & la_table & " ALTER COLUMN " & le_champ & " Varchar(40)" (par exemple)

Cependant, g une erreur d'exécution du type:

"Impossible car la table est verrouillée par une personne ou un processus"

Si quelqu'un pouvait m'aider, surtout que ça urge...

Merci d'avance

Stephle

PS: Si vous voyez pas de quoi je veux parler, consultez la source RecupDB présente sur le site et que j'ai postée et consultez la feuille "options" et la fonction "trait_SQL" présente dans cette feuille...

4 réponses

ria94 Messages postés 97 Date d'inscription mercredi 28 mai 2003 Statut Membre Dernière intervention 3 octobre 2006
25 juin 2003 à 14:46
'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)
'tu colle la chaine sql de ta requete dans " ??????"

chSQL = "????????????votre chaine SQL????????????????ex: SELECT plan_.[Secteur_(Appli)], plan_.Lieu INTO plan From plan_ WHERE (((plan_.[Secteur_(Appli)])>0));??????????????????????????????????????????"

'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
0
Stephle Messages postés 10 Date d'inscription lundi 17 mars 2003 Statut Membre Dernière intervention 3 août 2004
25 juin 2003 à 15:18
C'est cool comme code mais petite précision ca marche en VBA access, le petit détail (et je viens de me rendre compte que j'ai oublié d'en parler), c'est que mon appli est programmée en VB et que la connexion avec Access est du type ADO.

Donc les instructions "opendatabase", etc... n'existent pas

Merci pour ce conseil quand meme

Si tu as la soluce en VB ca m'arrangerait

Stephle
0
ria94 Messages postés 97 Date d'inscription mercredi 28 mai 2003 Statut Membre Dernière intervention 3 octobre 2006
25 juin 2003 à 16:01
Moi j ai creer mon programme en vb avec ce code et il marche tres bien a partir du moment que t as ta base access il te crée une requete et tu balance la chaine sql de ta requete. Normalement ca marche.
0
cs_Draconagi Messages postés 34 Date d'inscription vendredi 9 avril 2004 Statut Membre Dernière intervention 9 octobre 2006 1
27 avril 2004 à 14:43
Les options opendatabase existe sous ton VB pour access.
Seulement tu dois définir les dictionnaires auquel ton VB editor peut avoir accés. Utilise le dico VBA et tu verras tu trouveras ces fonctions.

Je débute mais j'aime comprendre et savoir
0
Rejoignez-nous