Compression unicode.

Résolu
JPMCDVI Messages postés 2 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 30 août 2005 - 29 août 2005 à 16:58
JPMCDVI Messages postés 2 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 30 août 2005 - 30 août 2005 à 09:56
Bonjour,


J’ai une base de donnée créée. Je rajoute en code une table avec des champs. Pour chaque champ, je modifie le nombre de caractères désirés ainsi que la valeur par défaut. J’active la chaîne vide autorisée etc… Tout cela je sais le faire en DAO. Et j’ai appris à le faire également en ADO.




Mon problème est que je n’arrive pas à modifier par code toutes les propriétés d’un champ pour une base de donnée Access 2000 (c’est à dire toutes les propriétés contenus dans "Mode création" pour une table). Plus concrètement, je n’arrive absolument pas à activer la compression unicode pour un champ choisi…






Afficher un texte par défaut fonctionne parfaitement en utilisant :




' Afficher le texte par defaut : " Champ1" :
Db.TableDefs("Table1").Fields("Champ1").Properties("DefaultValue").Value = " Champ1"




Mais lorsque j’utilise le même principe pour la compression unicode, cela ne fonctionne pas :




' Activer la compression unicode (ne fonctionne pas !!)
Db.TableDefs("Table1").Fields("Champ1").Properties("UnicodeCompression").Value = True





Comment active t-on la compression unicode via ADO ou DAO, SQL ou autre... sous Access 2000?

Si quelqu'un avait un exemple à me donner, ce serait VRAIMENT sympa !



Merci !

Jean-Pierre

3 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
29 août 2005 à 17:37
Petite fonction se basant sur ADOX pour créer un champ de type texte :

Public Function CreateColumnTexte(ByRef oCatalog As ADOX.Catalog, ByRef
oTable As ADOX.Table, ByVal sColumnName As String, ByVal
sColumnDescription As String, ByVal lTaille As Long, ByVal
bChaineVideAutorisee As Boolean, ByVal bNullAutorise As Boolean, ByVal
bIsCompressed As Boolean, ByVal sDefaultValue As String, ByVal
sValidationRule As String, ByVal sRuleText As String) As Boolean



'======================================================================

'Function : CreateColumnTexte

'Date : 08/03/2005

'Auteur : DarK Sidious

'But : Permet de recréer un champ de type texte dans la table

'======================================================================



'on active la routine de traitement d'erreur

On Error GoTo erreur0



'déclaration des variables privées

Dim oColumn As ADOX.Column 'stocke le champ à ajouter à la base



Set oColumn = New ADOX.Column

Let oColumn.Name = sColumnName

Let oColumn.Type = adWChar

Set oColumn.ParentCatalog = oCatalog

Let oColumn.Properties("Description").Value = sColumnDescription

Let oColumn.DefinedSize = lTaille

Let oColumn.Properties("Jet OLEDB:Allow Zero Length").Value = bChaineVideAutorisee

Let oColumn.Properties("Nullable").Value = bNullAutorise

Let oColumn.Properties("Jet OLEDB:Compressed UNICODE Strings").Value = bIsCompressed

Let oColumn.Properties("Default").Value = sDefaultValue

Let oColumn.Properties("Jet OLEDB:Column Validation Rule").Value = sValidationRule

Let oColumn.Properties("Jet OLEDB:Column Validation Text").Value = sRuleText

Call oTable.Columns.Append(oColumn)



'la fonction a réussie

Let CreateColumnTexte = True

Exit Function



'routine de traitement d'erreur

erreur0:

'Problème : On n'a pas pu créer le champ

'Solution : On renvoie une valeur d'erreur : False



Let CreateColumnTexte = False



End Function


DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
3
cs_Arkalis Messages postés 29 Date d'inscription lundi 25 octobre 2004 Statut Membre Dernière intervention 1 décembre 2008
29 août 2005 à 17:19
Je suis aussi interessé par des exemples :)
0
JPMCDVI Messages postés 2 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 30 août 2005
30 août 2005 à 09:56
Merci à toi DARKSIDIOUS !

Vraiment sympa ton exemple ! Fonctionne parfaitement !

Jean-Pierre
0
Rejoignez-nous