Le probleme c'est que l'application ne gère pas de base de donnée, elle récupere des données et les place dans un tableau puis utilise les données stockées dans le tableau pour en faire un bilan avec un mise en page.
De plus il faut piloter tout ça à partir de Visual Basic 6.0 donc pas question de jouer avec des menus d'OOo
Pour le fichier avec les ";" , je me suis mal exprimé. en fait un fichier doc avec une mise en page précise contient des noms de variables à la place des elements à completer. Le fichier avec les ";" contient les valeurs de chaque variable.
Edit : Je rajoute le code de base pour MSOffice pour que vous compreniez un peu ce qu'il se passe à la base :
Code : Tout sélectionner
Public Function Olew_MergeFile(SrcFileName As String, MskFile As String) As Boolean
' *********************************************************
' FUSION de fichier en WORD 8
' SrcFileName : fichier de données .TXT, séparateur ";"
' MskFile : Fichier .DOC contenant les champs de fusion
' *********************************************************
Dim ret As Integer
Dim sFile As String
Dim sDataFileDoc As String
Dim aDoc As Object
Dim OldPath As String
DoEvents
Screen.MousePointer = vbHourglass
On Error GoTo ErrMergeWHandler
OldPath = CurDir
' /* Informations sur le fichier de données */
GetFileInfo SrcFileName
sDataFileDoc = InfoFile.Filename & ".DOC"
ret = FileExists(sDataFileDoc)
Select Case ret
Case True
Kill sDataFileDoc
Case 55, 70
Msg = XLate("Impossible de continuer la fusion") & vbLf
Msg = Msg & XLate("Le fichier") & " " & sDataFileDoc & vbLf
Msg = Msg & XLate("est occupé")
MsgBox Msg, vbOKOnly + vbCritical, App.Title
Exit Function
Case Else
End Select
' /* Ouvre le fichier de données .TXT */
OWW.Documents.Open Filename:=SrcFileName, ConfirmConversions:=False, ReadOnly _
:=False, AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate _
:="", Revert:=False, WritePasswordDocument:="", WritePasswordTemplate:="" _
, Format:=wdOpenFormatAuto
' /* Enregistre le fichier de données au format .DOC */
OWW.ActiveDocument.SaveAs Filename:=sDataFileDoc, FileFormat:=wdFormatDocument, _
LockComments:=False, Password:="", AddToRecentFiles:=True, WritePassword:="", _
ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=False, _
SaveFormsData:=False, SaveAsAOCELetter:=False
' /* Ferme le document Source données .DOC */
OWW.ActiveDocument.Close
DoEvents
' /* Ouvre le fichier des champs de fusion */
OWW.Documents.Open Filename:=MskFile, ConfirmConversions:=False, ReadOnly _
:=False, AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate _
:="", Revert:=False, WritePasswordDocument:="", WritePasswordTemplate:="" _
, Format:=wdOpenFormatAuto
DoEvents
OWW.ActiveDocument.MailMerge.MainDocumentType = wdFormLetters
DoEvents
OWW.ActiveDocument.MailMerge.OpenDataSource Name:=sDataFileDoc, ConfirmConversions:=False, ReadOnly _
:=False, LinkToSource:=True, AddToRecentFiles:=False, PasswordDocument:= _
"", PasswordTemplate:="", WritePasswordDocument:="", _
WritePasswordTemplate:="", Revert:=False, Format:=wdOpenFormatAuto, _
Connection:="", SQLStatement:="", SQLStatement1:=""
DoEvents
With OWW.ActiveDocument.MailMerge
.Destination = wdSendToNewDocument
.MailAsAttachment = False
.MailAddressFieldName = ""
.MailSubject = ""
.SuppressBlankLines = True
With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
.Execute Pause:=True
End With
' ==============================
' Recherche document source
' ==============================
DoEvents
GetFileInfo MskFile
sFile = UCase$(InfoFile.Filename) & ".DOC"
For Each aDoc In OWW.Documents
If UCase$(aDoc.Name) = sFile Then
aDoc.Activate
Exit For
End If
Next aDoc
' ==============================
' Supprime format fusion
' ==============================
DoEvents
OWW.ActiveDocument.MailMerge.MainDocumentType = wdNotAMergeDocument
' ==============================
' Referme sans sauver
' ==============================
DoEvents
OWW.ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges
Olew_MergeFile = True
DoEvents
ChDir OldPath
Exit Function
ErrMergeWHandler:
Beep
Msg = "Error : " & Err & vbLf
Msg = Msg & Error
MsgBox Msg, vbOKOnly + vbCritical, App.Title
Olew_MergeFile = False
Exit Function
End Function