LibreOffice Base macro et formulaire

Résolu
CCC94 Messages postés 13 Statut Membre -  
CCC94 Messages postés 13 Statut Membre -
Bonjour à vous...
Je travaille toujours sur ma base libreoffice base. Je n'arrive pas à mettre en place des macros.
Je veux réaliser sur mon formulaire des boutons qui m'ouvrent des formulaires liés à des requêtes. En cherchant, j'ai vu que c’était possible en utilisant des macros... et en principe la commande n'est pas d'une complexité folle... mais j'y suis depuis une semaine... sans résultat....
En principe le code est:
Function OpenForm( formContainer as variant, oConnection as variant, sFormName as string, optional strMode as string ) as variant
Dim aProp(1) As New com.sun.star.beans.PropertyValue
Dim openMode as string
if ismissing( strMode ) then
openMode = "open"
else
openMode = strMode
endif
aProp(0).Name = "ActiveConnection"
aProp(0).Value = oConnection
aProp(1).Name = "OpenMode"
aProp(1).Value = strMode
OpenForm = formContainer.loadComponentFromURL(sFormName,"_blank",0,aProp())
End Function

Sub onClickOuvrirR-Festival( oEvent as variant )
OpenForm( OEvent.Source.Model.Parent.ActiveConnection.Parent.DatabaseDocument.FormDocuments, OEvent.Source.Model.Parent.ActiveConnection, "R-Festival")
end sub


Mais je n'obtient que des messages d'erreurs type :

Erreur de syntaxe BASIC.
Symbole inattendu : -. ou End If.


J'ai essayé pas mal de formules, elles génèrent toutes des messages d'erreurs...

EDIT : Ajout des balises de code

Please... help....
Merci beaucoup... Je ne m'en sors pas....

5 réponses

  1. CCC94
     
    J’ai aussi essayé ça :

    REM ***** ouvrir et fermer des formulaires *****

    Function OpenForm( formContainer as variant, oConnection as variant, sFormName as string, optional strMode as string ) as variant
    Dim aProp(1) As New com.sun.star.beans.PropertyValue
    Dim openMode as string
    if ismissing( strMode ) then
    openMode = "open"
    else
    openMode = strMode
    endif
    aProp(0).Name = "ActiveConnection"
    aProp(0).Value = oConnection
    aProp(1).Name = "OpenMode"
    aProp(1).Value = strMode
    OpenForm = formContainer.loadComponentFromURL(sFormName,"_blank",0,aProp())
    End Function

    Sub onClickOuvrirFAdresseMailVide( oEvent as variant )
    OpenForm( OEvent.Source.Model.Parent.ActiveConnection.Parent.DatabaseDocument.FormDocuments, OEvent.Source.Model.Parent.ActiveConnection, "FAdresseMailVide")
    end sub

    Sub fermer_formulaire
    ThisComponent.CurrentController.Frame.close(True)
    End Sub

    et j'ai cette erreur:

    Erreur d'exécution BASIC.
    Une exception s'est produite :
    Type: com.sun.star.lang.IllegalArgumentException
    Message: Invalid value type for 'OpenMode'.
    Expected: string
    Found: void.

    Si quelqu'un peut me donner ce code pour libreOffice Base..... Merciiiiiiii
    1
  2. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    Bonjour,

    As tu essayé End If (en deux mots )
    0
  3. CCC94 Messages postés 13 Statut Membre
     
    bonjour,
    Merci pour la réponse.... oui rien y fait, j'ai essayé de corriger, j'ai Que des erreurs... je pense que c'est tout le code qui n'est pas bon...
    Si d’autre idée... merci
    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
       
      Je ne fais pas de LibreOffice.
      Je n'ai fait que répondre pour une erreur qui m'a sautée aux yeux....
      0
    2. CCC94
       
      Merci ....
      0
  4. CCC94 Messages postés 13 Statut Membre
     
    Bonjour à vous.

    JE rame comme un fou depuis des semaines, tous mes essais sont des échecs.... la seule version qui ne transforme pas mon ordi en sapin de noël d'erreurs qund je clic sur le bouton "ouvrir formulaire F_GrandCOLLER" est celle que vous pouvez télécharger via ce lien :
    pianodeon.free.fr/Base CCM.odb

    Merci de votre aide.....
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. CCC94 Messages postés 13 Statut Membre
     
    bonjour,
    il y avait la suite des messages ici... avec plein de choses inintéressantes ....
    Ou sont elles passées ???
    Merci de vos retours
    0