OVH Cloud OVH Cloud

Ajouter un champ dans une autre base

2 réponses
Avatar
Patrice
Bonjour,

Comme l'objet le dit, je cherche à ajouter un champ à partir d'une base
(Patch) à une table située dans une autre base.

J'ai bien essayé le "Module de classe clsTables" de Raymond, mais hélas je
suis en access97...

Quelqu'un peut'il m'aider ?

Merci

Patrice
(C l'heure, je poursui la conversation à la maison ;o)))

2 réponses

Avatar
Patrice
De retour au boulot, bonjour,

Pour un peu plus d'explications, le message d'erreur est "Erreur de
compilation. Type ActiveX non géré dans Visual Basic." sur :

Public Function NewField( _
Fieldname As String _
, Optional FieldType As DataTypeEnum = dbText _
, Optional FieldSize As Integer = 50 _
, Optional FieldPosition As Integer = 0 _
, Optional FieldAttribute As FieldAttributeEnum _
, Optional FieldRequired As Boolean = False _
) As Boolean

Patrice

Patrice a écrit dans le message :
426fa8f4$
Bonjour,

Comme l'objet le dit, je cherche à ajouter un champ à partir d'une base
(Patch) à une table située dans une autre base.

J'ai bien essayé le "Module de classe clsTables" de Raymond, mais hélas je
suis en access97...

Quelqu'un peut'il m'aider ?

Merci

Patrice
(C l'heure, je poursui la conversation à la maison ;o)))




Avatar
Patrice
Si celà interesse quelqu'un, j'ai trouvé :

Private Sub BtnPatch_Click()

Dim dbsNorthwind As Database
Dim tdfAvisB As TableDef
Dim tdfAvisN As TableDef
Dim tdfCL As TableDef
Dim tdfNG As TableDef
Dim tdfAccor As TableDef
Dim fldLoop As Field

Set dbsNorthwind = OpenDatabase("C:VitamineCData_Zeste2005.mdb")
Set tdfAvisB = dbsNorthwind.TableDefs!T_Data_AVISBrut_DPX
Set tdfAvisN = dbsNorthwind.TableDefs!T_Data_AVISNet_DPX
Set tdfCL = dbsNorthwind.TableDefs!T_Data_T1VTE_CL_DPX
Set tdfNG = dbsNorthwind.TableDefs!T_Data_T1VTE_NG_DPX
Set tdfAccor = dbsNorthwind.TableDefs!T_Data_T5ACCOR_DPX

'Gestion du message d'erreur n°3191 de Microsoft si le patch a déjà été
appliqué (Voir en bas de la procédure)
On Error GoTo Err_BoutonApercuEtat_Click

'-------------------------------------
' Ajoute les nouveaux champs.
AppendDeleteField tdfAvisB, "APPEND", "NumEquipTmp", dbText, 50
AppendDeleteField tdfAvisN, "APPEND", "NumEquipTmp", dbText, 50
AppendDeleteField tdfCL, "APPEND", "NumEquipTmp", dbText, 50
AppendDeleteField tdfNG, "APPEND", "NumEquipTmp", dbText, 50
AppendDeleteField tdfAccor, "APPEND", "NumEquipTmp", dbText, 50


dbsNorthwind.Close

Beep
MsgBox "Patch appliqué", vbInformation, "Merci"
'-------------------------------------

'Gestion du message d'erreur n°70 de Microsoft si excel est ouvert :
Exit_BoutonApercuEtat_Click:
Exit Sub

Err_BoutonApercuEtat_Click:
Select Case Err
Case 3191: Beep: MsgBox "Le patch a déjà été appliqué.", 48, "Au revoir
;o)))"
Case Else: MsgBox Error$ & " " & Err
End Select

End Sub
Sub AppendDeleteField(tdfTemp As TableDef, _
strCommand As String, strName As String, _
Optional varType, Optional varSize)

With tdfTemp

' Vérifie d'abord que l'objet TableDef peut être
' mis à jour. Sinon, la main est redonnée à
' la procédure appelante.
If .Updatable = False Then
MsgBox "TableDef ne peut pas être mis à jour ! " & _
"Tâche impossible à exécuter."

Exit Sub
End If

' Selon les données passées, ajoute ou supprime
' un champ dans la collection Fields de l'objet
' TableDef spécifié.
If strCommand = "APPEND" Then
.Fields.Append .CreateField(strName, _
varType, varSize)
Else
If strCommand = "DELETE" Then .Fields.Delete _
strName
End If

End With

End Sub






Patrice a écrit dans le message :
427089e5$
De retour au boulot, bonjour,

Pour un peu plus d'explications, le message d'erreur est "Erreur de
compilation. Type ActiveX non géré dans Visual Basic." sur :

Public Function NewField( _
Fieldname As String _
, Optional FieldType As DataTypeEnum = dbText _
, Optional FieldSize As Integer = 50 _
, Optional FieldPosition As Integer = 0 _
, Optional FieldAttribute As FieldAttributeEnum _
, Optional FieldRequired As Boolean = False _
) As Boolean

Patrice

Patrice a écrit dans le message :
426fa8f4$
Bonjour,

Comme l'objet le dit, je cherche à ajouter un champ à partir d'une base
(Patch) à une table située dans une autre base.

J'ai bien essayé le "Module de classe clsTables" de Raymond, mais hélas
je


suis en access97...

Quelqu'un peut'il m'aider ?

Merci

Patrice
(C l'heure, je poursui la conversation à la maison ;o)))