Excel Downloads
Forum

Précédent   Excel Downloads Forums > Excel > Forum Excel


Réponse
 
LinkBack Outils de la discussion
Vieux 12/04/2006, 18h22   #1 (permalink)
XLDnaute Nouveau
 
Date d'inscription: septembre 2005
Messages: 6
Par défaut ADOX Creer Database et Table

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
Solenfou est déconnecté   Réponse avec citation
ANNONCES
Vieux 12/04/2006, 18h49   #2 (permalink)
XLDnaute Barbatruc
 
Date d'inscription: février 2005
Messages: 3 713
Par défaut Re:ADOX Creer Database et Table

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
MichelXld est déconnecté   Réponse avec citation
Vieux 12/04/2006, 18h59   #3 (permalink)
Jam
XLDnaute Impliqué
 
Avatar de Jam
 
Date d'inscription: février 2005
Localisation: Chambourcy
Version Excel : Excel 2003 (PC)
Messages: 653
Envoyer un message via MSN à Jam
Par défaut Re:ADOX Creer Database et Table

Salut Solenfou,

As-tu essayé avec du SQL ?

Citation:
CREATE TABLE Names (Date Name TEXT (80), LastName TEXT (20) );
__________________
Toutes les bonnes idées ne sont pas dans la même tête.
Jam est déconnecté   Réponse avec citation
Vieux 13/04/2006, 10h11   #4 (permalink)
XLDnaute Nouveau
 
Date d'inscription: septembre 2005
Messages: 6
Par défaut Re:ADOX Creer Database et Table

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
Solenfou est déconnecté   Réponse avec citation
ANNONCES
Réponse

Liens sociaux

Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +2. Il est actuellement 18h31.


(C) 2006 Excel Downloads