Voila vous m'avez aidé à réaliser ce code et cela marchait jusqu'à maintenant
j'explique:
j'ai une base applicative du style c:\appli\locale\pomme\pomme_appli.mdb
puis une base de données ou se trouve toutes mes tables du style
c:\appli\locale\pomme\data\pomme_data.mdb
donc de la base applicative pomme_appli.mdb je veux changer la longueur d'un
champ "rub_code" dans une table qui s'appelle "rubrique" et qui se trouve
dans pomme_data.mdb
voila ce que j'ai écrit grace à vous
Sub Chgchamp(tblName As String, fldName As String, fldType As String,
fldLenght As Long, Ajout As Boolean)
'Modification d'un champ
Dim dft As TableDef
Dim dbs As Database
Dim db As Database
'Set dft = CurrentDb.TableDefs(tblName)
'Creation d'un champ
Set dbs = OpenDatabase("c:\appli\pomme2.mdb")
If dbs.TableDefs(tblName).Fields(fldName).Size < 4 Then
dbs.Execute "ALTER TABLE [" & tblName & "] ADD COLUMN [" & fldName &
"xyz] TEXT(5) not NULL CONSTRAINT [" & fldName & "xyz] UNIQUE;"
dbs.Execute "UPDATE [" & tblName & "] Set [" & fldName & "xyz] = [" &
fldName & "]"
dbs.Execute "DROP INDEX [" & fldName & "] ON [" & tblName & "];"
dbs.Execute "ALTER TABLE [" & tblName & "] DROP COLUMN [" & fldName & "]
;"
Set db = OpenDatabase("c:\appli\pomme2.mdb")
db.TableDefs(tblName).Fields(fldName & "xyz").Required = True 'Null
interdit
db.TableDefs(tblName).Fields(fldName & "xyz").AllowZeroLength = False
db.TableDefs(tblName).Fields(fldName & "xyz").Name = fldName
Else
MsgBox "toto"
End If
dbs.Close
db.Close
End Sub
je declenche cela à partir d'une ligne du style
call chgchamp(("rubrique", "rub_code", "dbText", 5, True)
cela fonctionnait et maintenant cela ne fonctionne plus
sniff pourquoi dites moi pourquoi michel_d ou gilbert
A moins que ce ne soit une erreur de frappe, tu as une parenthèse ouvrante de trop.
Après je ne sais pas si c'est une erreur de frappe.
michel_bdx a écrit :
Bonjour
Voila vous m'avez aidé à réaliser ce code et cela marchait jusqu'à maintenant
j'explique:
j'ai une base applicative du style c:applilocalepommepomme_appli.mdb puis une base de données ou se trouve toutes mes tables du style c:applilocalepommedatapomme_data.mdb
donc de la base applicative pomme_appli.mdb je veux changer la longueur d'un champ "rub_code" dans une table qui s'appelle "rubrique" et qui se trouve dans pomme_data.mdb
voila ce que j'ai écrit grace à vous Sub Chgchamp(tblName As String, fldName As String, fldType As String, fldLenght As Long, Ajout As Boolean) 'Modification d'un champ Dim dft As TableDef Dim dbs As Database Dim db As Database 'Set dft = CurrentDb.TableDefs(tblName) 'Creation d'un champ Set dbs = OpenDatabase("c:applipomme2.mdb") If dbs.TableDefs(tblName).Fields(fldName).Size < 4 Then dbs.Execute "ALTER TABLE [" & tblName & "] ADD COLUMN [" & fldName & "xyz] TEXT(5) not NULL CONSTRAINT [" & fldName & "xyz] UNIQUE;" dbs.Execute "UPDATE [" & tblName & "] Set [" & fldName & "xyz] = [" & fldName & "]" dbs.Execute "DROP INDEX [" & fldName & "] ON [" & tblName & "];" dbs.Execute "ALTER TABLE [" & tblName & "] DROP COLUMN [" & fldName & "] ;" Set db = OpenDatabase("c:applipomme2.mdb") db.TableDefs(tblName).Fields(fldName & "xyz").Required = True 'Null interdit db.TableDefs(tblName).Fields(fldName & "xyz").AllowZeroLength = False db.TableDefs(tblName).Fields(fldName & "xyz").Name = fldName Else MsgBox "toto" End If dbs.Close db.Close End Sub
je declenche cela à partir d'une ligne du style call chgchamp(("rubrique", "rub_code", "dbText", 5, True)
cela fonctionnait et maintenant cela ne fonctionne plus
sniff pourquoi dites moi pourquoi michel_d ou gilbert
A moins que ce ne soit une erreur de frappe, tu as une parenthèse
ouvrante de trop.
Après je ne sais pas si c'est une erreur de frappe.
michel_bdx a écrit :
Bonjour
Voila vous m'avez aidé à réaliser ce code et cela marchait jusqu'à maintenant
j'explique:
j'ai une base applicative du style c:applilocalepommepomme_appli.mdb
puis une base de données ou se trouve toutes mes tables du style
c:applilocalepommedatapomme_data.mdb
donc de la base applicative pomme_appli.mdb je veux changer la longueur d'un
champ "rub_code" dans une table qui s'appelle "rubrique" et qui se trouve
dans pomme_data.mdb
voila ce que j'ai écrit grace à vous
Sub Chgchamp(tblName As String, fldName As String, fldType As String,
fldLenght As Long, Ajout As Boolean)
'Modification d'un champ
Dim dft As TableDef
Dim dbs As Database
Dim db As Database
'Set dft = CurrentDb.TableDefs(tblName)
'Creation d'un champ
Set dbs = OpenDatabase("c:applipomme2.mdb")
If dbs.TableDefs(tblName).Fields(fldName).Size < 4 Then
dbs.Execute "ALTER TABLE [" & tblName & "] ADD COLUMN [" & fldName &
"xyz] TEXT(5) not NULL CONSTRAINT [" & fldName & "xyz] UNIQUE;"
dbs.Execute "UPDATE [" & tblName & "] Set [" & fldName & "xyz] = [" &
fldName & "]"
dbs.Execute "DROP INDEX [" & fldName & "] ON [" & tblName & "];"
dbs.Execute "ALTER TABLE [" & tblName & "] DROP COLUMN [" & fldName & "]
;"
Set db = OpenDatabase("c:applipomme2.mdb")
db.TableDefs(tblName).Fields(fldName & "xyz").Required = True 'Null
interdit
db.TableDefs(tblName).Fields(fldName & "xyz").AllowZeroLength = False
db.TableDefs(tblName).Fields(fldName & "xyz").Name = fldName
Else
MsgBox "toto"
End If
dbs.Close
db.Close
End Sub
je declenche cela à partir d'une ligne du style
call chgchamp(("rubrique", "rub_code", "dbText", 5, True)
cela fonctionnait et maintenant cela ne fonctionne plus
sniff pourquoi dites moi pourquoi michel_d ou gilbert
A moins que ce ne soit une erreur de frappe, tu as une parenthèse ouvrante de trop.
Après je ne sais pas si c'est une erreur de frappe.
michel_bdx a écrit :
Bonjour
Voila vous m'avez aidé à réaliser ce code et cela marchait jusqu'à maintenant
j'explique:
j'ai une base applicative du style c:applilocalepommepomme_appli.mdb puis une base de données ou se trouve toutes mes tables du style c:applilocalepommedatapomme_data.mdb
donc de la base applicative pomme_appli.mdb je veux changer la longueur d'un champ "rub_code" dans une table qui s'appelle "rubrique" et qui se trouve dans pomme_data.mdb
voila ce que j'ai écrit grace à vous Sub Chgchamp(tblName As String, fldName As String, fldType As String, fldLenght As Long, Ajout As Boolean) 'Modification d'un champ Dim dft As TableDef Dim dbs As Database Dim db As Database 'Set dft = CurrentDb.TableDefs(tblName) 'Creation d'un champ Set dbs = OpenDatabase("c:applipomme2.mdb") If dbs.TableDefs(tblName).Fields(fldName).Size < 4 Then dbs.Execute "ALTER TABLE [" & tblName & "] ADD COLUMN [" & fldName & "xyz] TEXT(5) not NULL CONSTRAINT [" & fldName & "xyz] UNIQUE;" dbs.Execute "UPDATE [" & tblName & "] Set [" & fldName & "xyz] = [" & fldName & "]" dbs.Execute "DROP INDEX [" & fldName & "] ON [" & tblName & "];" dbs.Execute "ALTER TABLE [" & tblName & "] DROP COLUMN [" & fldName & "] ;" Set db = OpenDatabase("c:applipomme2.mdb") db.TableDefs(tblName).Fields(fldName & "xyz").Required = True 'Null interdit db.TableDefs(tblName).Fields(fldName & "xyz").AllowZeroLength = False db.TableDefs(tblName).Fields(fldName & "xyz").Name = fldName Else MsgBox "toto" End If dbs.Close db.Close End Sub
je declenche cela à partir d'une ligne du style call chgchamp(("rubrique", "rub_code", "dbText", 5, True)
cela fonctionnait et maintenant cela ne fonctionne plus
sniff pourquoi dites moi pourquoi michel_d ou gilbert
merci
michel_bdx
merci pour la remarque c'est une erreur de frappe michel
A moins que ce ne soit une erreur de frappe, tu as une parenthèse ouvrante de trop.
Après je ne sais pas si c'est une erreur de frappe.
michel_bdx a écrit : > Bonjour > > Voila vous m'avez aidé à réaliser ce code et cela marchait jusqu'à maintenant > > j'explique: > > j'ai une base applicative du style c:applilocalepommepomme_appli.mdb > puis une base de données ou se trouve toutes mes tables du style > c:applilocalepommedatapomme_data.mdb > > donc de la base applicative pomme_appli.mdb je veux changer la longueur d'un > champ "rub_code" dans une table qui s'appelle "rubrique" et qui se trouve > dans pomme_data.mdb > > voila ce que j'ai écrit grace à vous > Sub Chgchamp(tblName As String, fldName As String, fldType As String, > fldLenght As Long, Ajout As Boolean) > 'Modification d'un champ > Dim dft As TableDef > Dim dbs As Database > Dim db As Database > 'Set dft = CurrentDb.TableDefs(tblName) > 'Creation d'un champ > Set dbs = OpenDatabase("c:applipomme2.mdb") > If dbs.TableDefs(tblName).Fields(fldName).Size < 4 Then > dbs.Execute "ALTER TABLE [" & tblName & "] ADD COLUMN [" & fldName & > "xyz] TEXT(5) not NULL CONSTRAINT [" & fldName & "xyz] UNIQUE;" > dbs.Execute "UPDATE [" & tblName & "] Set [" & fldName & "xyz] = [" & > fldName & "]" > dbs.Execute "DROP INDEX [" & fldName & "] ON [" & tblName & "];" > dbs.Execute "ALTER TABLE [" & tblName & "] DROP COLUMN [" & fldName & "] > ;" > Set db = OpenDatabase("c:applipomme2.mdb") > db.TableDefs(tblName).Fields(fldName & "xyz").Required = True 'Null > interdit > db.TableDefs(tblName).Fields(fldName & "xyz").AllowZeroLength = False > db.TableDefs(tblName).Fields(fldName & "xyz").Name = fldName > Else > MsgBox "toto" > End If > dbs.Close > db.Close > End Sub > > > je declenche cela à partir d'une ligne du style > call chgchamp(("rubrique", "rub_code", "dbText", 5, True) > > cela fonctionnait et maintenant cela ne fonctionne plus > > sniff pourquoi dites moi pourquoi michel_d ou gilbert > > merci > >
merci pour la remarque c'est une erreur de frappe
michel
A moins que ce ne soit une erreur de frappe, tu as une parenthèse
ouvrante de trop.
Après je ne sais pas si c'est une erreur de frappe.
michel_bdx a écrit :
> Bonjour
>
> Voila vous m'avez aidé à réaliser ce code et cela marchait jusqu'à maintenant
>
> j'explique:
>
> j'ai une base applicative du style c:applilocalepommepomme_appli.mdb
> puis une base de données ou se trouve toutes mes tables du style
> c:applilocalepommedatapomme_data.mdb
>
> donc de la base applicative pomme_appli.mdb je veux changer la longueur d'un
> champ "rub_code" dans une table qui s'appelle "rubrique" et qui se trouve
> dans pomme_data.mdb
>
> voila ce que j'ai écrit grace à vous
> Sub Chgchamp(tblName As String, fldName As String, fldType As String,
> fldLenght As Long, Ajout As Boolean)
> 'Modification d'un champ
> Dim dft As TableDef
> Dim dbs As Database
> Dim db As Database
> 'Set dft = CurrentDb.TableDefs(tblName)
> 'Creation d'un champ
> Set dbs = OpenDatabase("c:applipomme2.mdb")
> If dbs.TableDefs(tblName).Fields(fldName).Size < 4 Then
> dbs.Execute "ALTER TABLE [" & tblName & "] ADD COLUMN [" & fldName &
> "xyz] TEXT(5) not NULL CONSTRAINT [" & fldName & "xyz] UNIQUE;"
> dbs.Execute "UPDATE [" & tblName & "] Set [" & fldName & "xyz] = [" &
> fldName & "]"
> dbs.Execute "DROP INDEX [" & fldName & "] ON [" & tblName & "];"
> dbs.Execute "ALTER TABLE [" & tblName & "] DROP COLUMN [" & fldName & "]
> ;"
> Set db = OpenDatabase("c:applipomme2.mdb")
> db.TableDefs(tblName).Fields(fldName & "xyz").Required = True 'Null
> interdit
> db.TableDefs(tblName).Fields(fldName & "xyz").AllowZeroLength = False
> db.TableDefs(tblName).Fields(fldName & "xyz").Name = fldName
> Else
> MsgBox "toto"
> End If
> dbs.Close
> db.Close
> End Sub
>
>
> je declenche cela à partir d'une ligne du style
> call chgchamp(("rubrique", "rub_code", "dbText", 5, True)
>
> cela fonctionnait et maintenant cela ne fonctionne plus
>
> sniff pourquoi dites moi pourquoi michel_d ou gilbert
>
> merci
>
>
A moins que ce ne soit une erreur de frappe, tu as une parenthèse ouvrante de trop.
Après je ne sais pas si c'est une erreur de frappe.
michel_bdx a écrit : > Bonjour > > Voila vous m'avez aidé à réaliser ce code et cela marchait jusqu'à maintenant > > j'explique: > > j'ai une base applicative du style c:applilocalepommepomme_appli.mdb > puis une base de données ou se trouve toutes mes tables du style > c:applilocalepommedatapomme_data.mdb > > donc de la base applicative pomme_appli.mdb je veux changer la longueur d'un > champ "rub_code" dans une table qui s'appelle "rubrique" et qui se trouve > dans pomme_data.mdb > > voila ce que j'ai écrit grace à vous > Sub Chgchamp(tblName As String, fldName As String, fldType As String, > fldLenght As Long, Ajout As Boolean) > 'Modification d'un champ > Dim dft As TableDef > Dim dbs As Database > Dim db As Database > 'Set dft = CurrentDb.TableDefs(tblName) > 'Creation d'un champ > Set dbs = OpenDatabase("c:applipomme2.mdb") > If dbs.TableDefs(tblName).Fields(fldName).Size < 4 Then > dbs.Execute "ALTER TABLE [" & tblName & "] ADD COLUMN [" & fldName & > "xyz] TEXT(5) not NULL CONSTRAINT [" & fldName & "xyz] UNIQUE;" > dbs.Execute "UPDATE [" & tblName & "] Set [" & fldName & "xyz] = [" & > fldName & "]" > dbs.Execute "DROP INDEX [" & fldName & "] ON [" & tblName & "];" > dbs.Execute "ALTER TABLE [" & tblName & "] DROP COLUMN [" & fldName & "] > ;" > Set db = OpenDatabase("c:applipomme2.mdb") > db.TableDefs(tblName).Fields(fldName & "xyz").Required = True 'Null > interdit > db.TableDefs(tblName).Fields(fldName & "xyz").AllowZeroLength = False > db.TableDefs(tblName).Fields(fldName & "xyz").Name = fldName > Else > MsgBox "toto" > End If > dbs.Close > db.Close > End Sub > > > je declenche cela à partir d'une ligne du style > call chgchamp(("rubrique", "rub_code", "dbText", 5, True) > > cela fonctionnait et maintenant cela ne fonctionne plus > > sniff pourquoi dites moi pourquoi michel_d ou gilbert > > merci > >
L'identification de la contrainte ne doit pas correspondre au libellé d'un champ.
Pour rappel voici ce que je t'avais répondu sur un autre post :
ALTER TABLE LaTable ALTER COLUMN LeChamp CHAR(255) NOT NULL CONSTRAINT LeChamp_LaTable UNIQUE;
et donc l'identification de la contrainte [LeChamp_LaTable] qui peut être nommée autrement est bien différente du libellé du champ [LeChamp].
PS:Et je vois pas la finalité de l'UPDATE qui suit l'ALTER TABLE.
"michel_bdx" a écrit dans le message de news:
Bonjour
Voila vous m'avez aidé à réaliser ce code et cela marchait jusqu'à maintenant
j'explique:
j'ai une base applicative du style c:applilocalepommepomme_appli.mdb puis une base de données ou se trouve toutes mes tables du style c:applilocalepommedatapomme_data.mdb
donc de la base applicative pomme_appli.mdb je veux changer la longueur d'un champ "rub_code" dans une table qui s'appelle "rubrique" et qui se trouve dans pomme_data.mdb
voila ce que j'ai écrit grace à vous Sub Chgchamp(tblName As String, fldName As String, fldType As String, fldLenght As Long, Ajout As Boolean) 'Modification d'un champ Dim dft As TableDef Dim dbs As Database Dim db As Database 'Set dft = CurrentDb.TableDefs(tblName) 'Creation d'un champ Set dbs = OpenDatabase("c:applipomme2.mdb") If dbs.TableDefs(tblName).Fields(fldName).Size < 4 Then dbs.Execute "ALTER TABLE [" & tblName & "] ADD COLUMN [" & fldName & "xyz] TEXT(5) not NULL CONSTRAINT [" & fldName & "xyz] UNIQUE;" dbs.Execute "UPDATE [" & tblName & "] Set [" & fldName & "xyz] = [" & fldName & "]" dbs.Execute "DROP INDEX [" & fldName & "] ON [" & tblName & "];" dbs.Execute "ALTER TABLE [" & tblName & "] DROP COLUMN [" & fldName & "] ;" Set db = OpenDatabase("c:applipomme2.mdb") db.TableDefs(tblName).Fields(fldName & "xyz").Required = True 'Null interdit db.TableDefs(tblName).Fields(fldName & "xyz").AllowZeroLength = False db.TableDefs(tblName).Fields(fldName & "xyz").Name = fldName Else MsgBox "toto" End If dbs.Close db.Close End Sub
je declenche cela à partir d'une ligne du style call chgchamp(("rubrique", "rub_code", "dbText", 5, True)
cela fonctionnait et maintenant cela ne fonctionne plus
sniff pourquoi dites moi pourquoi michel_d ou gilbert
L'identification de la contrainte ne doit pas correspondre au libellé d'un champ.
Pour rappel voici ce que je t'avais répondu sur un autre post :
ALTER TABLE LaTable
ALTER COLUMN LeChamp CHAR(255) NOT NULL
CONSTRAINT LeChamp_LaTable UNIQUE;
et donc l'identification de la contrainte [LeChamp_LaTable] qui peut être nommée
autrement est bien différente du libellé du champ [LeChamp].
PS:Et je vois pas la finalité de l'UPDATE qui suit l'ALTER TABLE.
"michel_bdx" <michelbdx@discussions.microsoft.com> a écrit dans le message de
news:A64BC70C-1DB3-42BD-9BA6-B5D8F45855D3@microsoft.com...
Bonjour
Voila vous m'avez aidé à réaliser ce code et cela marchait jusqu'à maintenant
j'explique:
j'ai une base applicative du style c:applilocalepommepomme_appli.mdb
puis une base de données ou se trouve toutes mes tables du style
c:applilocalepommedatapomme_data.mdb
donc de la base applicative pomme_appli.mdb je veux changer la longueur d'un
champ "rub_code" dans une table qui s'appelle "rubrique" et qui se trouve
dans pomme_data.mdb
voila ce que j'ai écrit grace à vous
Sub Chgchamp(tblName As String, fldName As String, fldType As String,
fldLenght As Long, Ajout As Boolean)
'Modification d'un champ
Dim dft As TableDef
Dim dbs As Database
Dim db As Database
'Set dft = CurrentDb.TableDefs(tblName)
'Creation d'un champ
Set dbs = OpenDatabase("c:applipomme2.mdb")
If dbs.TableDefs(tblName).Fields(fldName).Size < 4 Then
dbs.Execute "ALTER TABLE [" & tblName & "] ADD COLUMN [" & fldName &
"xyz] TEXT(5) not NULL CONSTRAINT [" & fldName & "xyz] UNIQUE;"
dbs.Execute "UPDATE [" & tblName & "] Set [" & fldName & "xyz] = [" &
fldName & "]"
dbs.Execute "DROP INDEX [" & fldName & "] ON [" & tblName & "];"
dbs.Execute "ALTER TABLE [" & tblName & "] DROP COLUMN [" & fldName & "]
;"
Set db = OpenDatabase("c:applipomme2.mdb")
db.TableDefs(tblName).Fields(fldName & "xyz").Required = True 'Null
interdit
db.TableDefs(tblName).Fields(fldName & "xyz").AllowZeroLength = False
db.TableDefs(tblName).Fields(fldName & "xyz").Name = fldName
Else
MsgBox "toto"
End If
dbs.Close
db.Close
End Sub
je declenche cela à partir d'une ligne du style
call chgchamp(("rubrique", "rub_code", "dbText", 5, True)
cela fonctionnait et maintenant cela ne fonctionne plus
sniff pourquoi dites moi pourquoi michel_d ou gilbert
L'identification de la contrainte ne doit pas correspondre au libellé d'un champ.
Pour rappel voici ce que je t'avais répondu sur un autre post :
ALTER TABLE LaTable ALTER COLUMN LeChamp CHAR(255) NOT NULL CONSTRAINT LeChamp_LaTable UNIQUE;
et donc l'identification de la contrainte [LeChamp_LaTable] qui peut être nommée autrement est bien différente du libellé du champ [LeChamp].
PS:Et je vois pas la finalité de l'UPDATE qui suit l'ALTER TABLE.
"michel_bdx" a écrit dans le message de news:
Bonjour
Voila vous m'avez aidé à réaliser ce code et cela marchait jusqu'à maintenant
j'explique:
j'ai une base applicative du style c:applilocalepommepomme_appli.mdb puis une base de données ou se trouve toutes mes tables du style c:applilocalepommedatapomme_data.mdb
donc de la base applicative pomme_appli.mdb je veux changer la longueur d'un champ "rub_code" dans une table qui s'appelle "rubrique" et qui se trouve dans pomme_data.mdb
voila ce que j'ai écrit grace à vous Sub Chgchamp(tblName As String, fldName As String, fldType As String, fldLenght As Long, Ajout As Boolean) 'Modification d'un champ Dim dft As TableDef Dim dbs As Database Dim db As Database 'Set dft = CurrentDb.TableDefs(tblName) 'Creation d'un champ Set dbs = OpenDatabase("c:applipomme2.mdb") If dbs.TableDefs(tblName).Fields(fldName).Size < 4 Then dbs.Execute "ALTER TABLE [" & tblName & "] ADD COLUMN [" & fldName & "xyz] TEXT(5) not NULL CONSTRAINT [" & fldName & "xyz] UNIQUE;" dbs.Execute "UPDATE [" & tblName & "] Set [" & fldName & "xyz] = [" & fldName & "]" dbs.Execute "DROP INDEX [" & fldName & "] ON [" & tblName & "];" dbs.Execute "ALTER TABLE [" & tblName & "] DROP COLUMN [" & fldName & "] ;" Set db = OpenDatabase("c:applipomme2.mdb") db.TableDefs(tblName).Fields(fldName & "xyz").Required = True 'Null interdit db.TableDefs(tblName).Fields(fldName & "xyz").AllowZeroLength = False db.TableDefs(tblName).Fields(fldName & "xyz").Name = fldName Else MsgBox "toto" End If dbs.Close db.Close End Sub
je declenche cela à partir d'une ligne du style call chgchamp(("rubrique", "rub_code", "dbText", 5, True)
cela fonctionnait et maintenant cela ne fonctionne plus
sniff pourquoi dites moi pourquoi michel_d ou gilbert