Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/01/2011, 11h32   #1
Invité régulier
 
Inscription : février 2006
Messages : 44
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 44
Points : 9
Points : 9
Par défaut Erreur lors d'un ALTER COLUMN basique

Bonjour à tous

Je viens vers vous, parce que j'ai un petit souci avec Access 2007.
En fait, j'ai une base existante et je souhaiterais passer certains champs de type Texte au type Mémo (pour une question de taille des infos contenues).

Je tente donc une syntaxe du type:

Code :
ALTER TABLE Action ALTER COLUMN description MEMO;
Et Access me renvoit l'erreur suivante:
"La requête doit avoir au moins un champ de destination."

Mais je ne vois vraiment pas ce qui cloche...

J'espère que vous avez une idée
Mais merci par avance à tous ceux qui se pencheront sur le sujet!

Bonne journée

PS:Access 2007, XP SP3
Moskito est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2011, 20h30   #2
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 462
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 462
Points : 7 539
Points : 7 539
Pourquoi ne pas le faire directement dans l'environnement de création de table ?

Sinon quel type de requête utilises-tu ?

As-tu essayé avec un DoCmd.OpenSQL("TonSQL") ?

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2011, 09h32   #3
Invité régulier
 
Inscription : février 2006
Messages : 44
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 44
Points : 9
Points : 9
Bonjour et merci pour cette réponse!

Je ne le fais pas directement dans l'environnement de création de table afin que cela soit "automatisé" et de ne pas rater de table lors d'une mise à jour.

Pour le type de requête... son execution est faîte avec cette syntaxe:

(où cnn est ma connexion et sSQL ma requête.)

J'ai testé avec des ALTER TABLE DROP et ADD et ça fonctionne bien.

Je vais tester avec le DoCmd.OpenSQL et je te tiens au courant!

Encore merci

Edit: je viens de vérifier et je n'ai pas de OpenSQL pour le DoCmd... cela existait avec des versions précédentes d'Access?
Edit2: il y'a bien une commande RunSQL donc je vais tenter avec ça!
Moskito est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2011, 10h28   #4
Invité régulier
 
Inscription : février 2006
Messages : 44
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 44
Points : 9
Points : 9
J'ai cherché quelque peu mais je n'arrive pas à voir s'il est possible de spécifier sur quelle base on fait le RunSQL.
Parce que, en gros, je me suis fait un petit utilitaire qui va chercher une base et un script et qui doit executer ce script sur cette base.

Mais le RunSql, executé en tant que tel, est lancé depuis mon utilitaire, et je ne suis pas sur qu'il sache trouver la base tout seul... en tous cas, c'est ce que semble dire le message d'erreur levé:
Code :
Table ou Contrainte non trouvée.
Une idée?
Moskito est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2011, 10h59   #5
Invité régulier
 
Inscription : février 2006
Messages : 44
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 44
Points : 9
Points : 9
Bon et bien j'ai résolu mon problème

La magie d'Access fait qu'il faut mettre le nom des tables et des champs entre crochet pour que le "ALTER TABLE" fonctionne bien apparemment

Il ne me semblait pas utiliser de mots réservés pourtant, mais sait-on jamais!

Donc voilà!

PS: Par contre je n'ai pas trouvé de solution avec le RunSQL (pour savoir sur quelle base l'executer). Si quelqu'un à l'info, je suis preneur!
Moskito est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2011, 11h08   #6
Membre éprouvé
 
Homme
Inscription : octobre 2007
Messages : 324
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : octobre 2007
Messages : 324
Points : 440
Points : 440
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
Sub altererChamp()
 
Dim laBase As DAO.Database, nomBase As String
 
'Chemin complet de la base où se trouve la table
nomBase = CurrentDb.Name
'Ouverture de la base
Set laBase = DBEngine.OpenDatabase(nomBase)
 
'exécution du code SQL
laBase.Execute "Alter Table Action Alter column description Memo"
 
'Fermeture de la base
laBase.Close
Set laBase = Nothing
 
 
End Sub
Psychopathe est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h38.


 
 
 
 
Partenaires

Hébergement Web