Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

transfert de données d'une base externe vers une autre base exte rn

1 réponse
Avatar
michel_bdx
bonjour
1ère question
j'ai une base applicativeaccess de cette base je veux lancer une commande
qui me permets de transférer les données de ma base de données externe vers
une autre base de données externe comprenant les memes tables que l'autre
mais qui est en données.
2ème question
comment rajouter un champ supplémentaire à une table qui se trouve dans ma
base de données externe

merci michel

1 réponse

Avatar
Gilbert
Bonjour,


1ère question
j'ai une base applicativeaccess de cette base je veux lancer une commande
qui me permets de transférer les données de ma base de données externe
vers

une autre base de données externe comprenant les memes tables que l'autre
"mais qui est en données"???? Je n'ai pas compris ce que tu veux dire



2ème question
comment rajouter un champ supplémentaire à une table qui se trouve dans ma
base de données externe


Pour ajouter un champ

Set Db= DBEngine.Workspaces(0).OpenDatabase(NomDeLaBase)
Set matable = Db.TableDefs(NomDeLaTable)
Set Fld = matable.CreateField(NomDuChamp, dbDate)
Fld.Required = False 'Null interdit ou pas
Fld.DefaultValue = "Date()"
matable.Fields.Append Fld

Set Db= Nothing
Set matable = Nothing
Set Fld = Nothing

Tu peux aussi créer différentes propriétés pour ton champ avec cette
procédure:
Private Function fn_DefProp(ofld As DAO.Field, sPrp As String, lngType As
Long, vParam As Variant) As Byte
On Error GoTo ERR_DefPrp
Const ERR_pnd As Long = 3270 '// Prop non définie.
Dim oPrp As DAO.Property
ofld.Properties(sPrp) = vParam
ofld.Properties.Refresh
fn_DefProp = 1

SORTIE_DefPrp:
Set oPrp = Nothing
Exit Function

ERR_DefPrp:
If Err = ERR_pnd Then
'// Création de la propriété.
Set oPrp = ofld.CreateProperty(sPrp, lngType, vParam)
ofld.Properties.Append oPrp
ofld.Properties.Refresh
fn_DefProp = 1
Resume SORTIE_DefPrp
End If
MsgBox Err & ": " & Err.number & vbCrLf & Err.Description
Resume SORTIE_DefPrp
End Function

Par exemple:
Call fn_DefProp(Fld, "Caption", dbText, "La légende du champ")
Call fn_DefProp(Fld, "Description", dbText, "La description du champ")

Pour lister les propriétés des champs :
Sub ListeProprietesChamps()
On Error Resume Next
Dim Tbl As DAO.TableDef
Dim Fld As DAO.Field
Dim Db As DAO.Database
Dim Prop As DAO.Property

Set Db = CurrentDb
Set Tbl = Db.TableDefs(NomDeLaTable) 'Pour une seule table
'For Each Tbl In Db.TableDefs 'Boucle sur toutes les tables
For Each Fld In Tbl.Fields
Debug.Print "====================================="
Debug.Print Fld.Name
For Each Prop In Fld.Properties
Debug.Print "------------------------"
Debug.Print "Nom", Prop.Name
Debug.Print "Type", Prop.Type
Debug.Print "Valeur", Prop.Value
Next
Next
'Next
Set Tbl = Nothing
Set Fld = Nothing
Set Db = Nothing
End Sub

Voir ci-dessous pour la création de différents types de champs
Sub CreateTable()
Dim dbs As DAO.Database
Dim tdf As DAO.TableDef
Dim fld As DAO.Field

Set dbs = CurrentDb()
Set tdf = dbs.CreateTableDef("NouvelleTable")

Set fld = tdf.CreateField("NoAuto", dbLong)
fld.OrdinalPosition = 1
fld.Attributes = dbAutoIncrField
tdf.Fields.Append fld

Set fld = tdf.CreateField("ChampTexte", dbText)
fld.OrdinalPosition = 2
fld.Size = 100
fld.Required = True
fld.AllowZeroLength = False
tdf.Fields.Append fld

Set fld = tdf.CreateField("EntierLong", dbLong)
fld.OrdinalPosition = 3
fld.Attributes = dbFixedField
tdf.Fields.Append fld

Set fld = tdf.CreateField("Booleen", dbBoolean)
fld.OrdinalPosition = 4
tdf.Fields.Append fld

Set fld = tdf.CreateField("Byte", dbByte)
fld.OrdinalPosition = 5
tdf.Fields.Append fld

Set fld = tdf.CreateField("Entier", dbInteger)
fld.OrdinalPosition = 6
tdf.Fields.Append fld

Set fld = tdf.CreateField("Monétaire", dbCurrency)
fld.OrdinalPosition = 7
tdf.Fields.Append fld

Set fld = tdf.CreateField("ReelSimple", dbSingle)
fld.OrdinalPosition = 8
tdf.Fields.Append fld

Set fld = tdf.CreateField("ReelDouble", dbDouble)
fld.OrdinalPosition = 9
tdf.Fields.Append fld

Set fld = tdf.CreateField("ChampDate", dbDate)
fld.OrdinalPosition = 10
tdf.Fields.Append fld

Set fld = tdf.CreateField("Binary", dbBinary)
fld.OrdinalPosition = 11
tdf.Fields.Append fld

Set fld = tdf.CreateField("ChampMemo", dbMemo)
fld.OrdinalPosition = 12
tdf.Fields.Append fld

Set fld = tdf.CreateField("ChampOLE", dbBigInt)
fld.OrdinalPosition = 13
tdf.Fields.Append fld

dbs.TableDefs.Append tdf
RefreshDatabaseWindow

MsgBox "La table " & tdf.Name & " a été créée"

Set fld = Nothing
Set tdf = Nothing
Set dbs = Nothing
End Sub

Gilbert