![]() |
|
Forum
|
|
|
#1 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: septembre 2005
Messages: 6
|
Bonsoir le forum,
Dans une application, je crée à la volée une base de donnée Access et une Table. J'ai fais 2 versions: A) Avec reference à 'Microsoft ADO ext. 2.8' Option Explicit Option Compare Text Public Const DataPath As String = 'c:\\Test\\' Sub Create_Table() Dim MaTableIndex As New Table Dim cat As New ADOX.Catalog Dim MaTableName As String MaTableName = 'MaTable' With cat .Create 'Provider=Microsoft.Jet.OLEDB.4.0;' & 'Data Source=' & DataPath & 'TESTRef.mdb;' .ActiveConnection = 'Provider=Microsoft.Jet.OLEDB.4.0;' & 'Data Source=' & DataPath & 'TESTRef.mdb;' On Error Resume Next .Tables.Delete MaTableName On Error GoTo 0 End With With MaTableIndex .Name = MaTableName With .Columns .Append 'Date', adVarWChar, 10 .Append 'Number', adInteger, 10 .Append 'Number2', adInteger, 10 .Append 'Document', adVarWChar, 50 .Append 'Name', adVarWChar, 80 .Append 'AKA', adVarWChar, 80 .Append 'City', adVarWChar, 50 .Append 'Country', adVarWChar, 50 End With End With cat.Tables.Append MaTableIndex End Sub B) Sans reference (pas d'Option Explicit) Public Const DataPath As String = 'c:\\Test\\' Sub Create_Table2() Dim MaTableId As Object Dim MaTableIndex As Object Dim ADODOX As Object Dim ADODOXCatalog As Object Dim MaTableName As String MaTableName = 'MaTable' Set ADODOX = CreateObject('ADOX.Catalog') Set ADODOXCatalog = ADODOX Set MaTableId = CreateObject('ADOX.Table') Set MaTableIndex = MaTableId With ADODOXCatalog .Create 'Provider=Microsoft.Jet.OLEDB.4.0;' & 'Data Source=' & DataPath & 'TESTNoRef.mdb;' .ActiveConnection = 'Provider=Microsoft.Jet.OLEDB.4.0;' & 'Data Source=' & DataPath & 'TESTNoRef.mdb;' On Error Resume Next .Tables.Delete MaTableName On Error GoTo 0 End With With MaTableIndex .Name = MaTableName With .Columns .Append 'Date' .Append 'Number' .Append 'Number2' .Append 'Document' .Append 'Name' .Append 'AKA' .Append 'City' .Append 'Country' End With End With With ADODOXCatalog .Tables.Append MaTableId End With Set ADODOXCatalog = Nothing Set MaTableId = Nothing End Sub Dans la version A, je peux determiner le type de données et la taille de mes champs. Dans la version B je suis obligé de ne pas déterminer le type et la taille des mes champs. Y aurait-il un moyen pour pouvoir determiner le type et la taille des champs dans ma version B ? PS: _Thierry tu reconnaitra des noms d'objet... Merci de votre aide Solenfou |
|
|
|
| ANNONCES | |||
|
|
|
|
#2 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: février 2005
Messages: 3 713
|
bonsoir Solenfou
tu peux remplacer les constantes par leurs valeurs With .Columns .Append 'Date', 202, 10 .Append 'Number', 3, 10 .Append 'Number2', 3, 10 .Append 'Document', 202, 50 .Append 'Name', 202, 80 .Append 'AKA', 202, 80 .Append 'City', 202, 50 .Append 'Country', 202, 50 End With la liste : AdArray 0x2000 adBigInt 20 adBinary 128 adBoolean 11 adBSTR 8 adChapter 136 adChar 129 adCurrency 6 adDate 7 adDBDate 133 adDBTime 134 adDBTimeStamp 135 adDecimal 14 adDouble 5 adEmpty 0 adError 10 adFileTime 64 adGUID 72 adIDispatch 9 adInteger 3 adIUnknown 13 adLongVarBinary 205 adLongVarChar 201 adLongVarWChar 203 adNumeric 131 adPropVariant 138 adSingle 4 adSmallInt 2 adTinyInt 16 adUnsignedBigInt 21 adUnsignedInt 19 adUnsignedSmallInt 18 adUnsignedTinyInt 17 adUserDefined 132 adVarBinary 204 adVarChar 200 adVariant 12 adVarNumeric 139 adVarWChar 202 adWChar 130 bonne soirée MichelXld |
|
|
|
|
|
#4 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: septembre 2005
Messages: 6
|
Bonjour MichelXld, Jam, le forum
Tout d'abord un grand merci à vous deux. MichelXld c'est tout à fait ce que je recherchait !!! Jam je vais tester aussi en SQL... Merci Solenfou |
|
|
|
| ANNONCES | |
![]() |
| Liens sociaux |
| Outils de la discussion | |
|
|