🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Save Button mit einer Abfrage aus einer Tabelle

Alles zur Programmierung im LibreOffice.
Antworten
Ryoho
Beiträge: 48
Registriert: Fr 26. Jul 2013, 08:36

Save Button mit einer Abfrage aus einer Tabelle

Beitrag von Ryoho » Di 11. Nov 2014, 11:02

Hallo, ich glaube hier bin ich Richtiger :)
Ich versuche eine Makro zu erstellen das vor dem abspeichern den wert in einem Textfeld überprüft ob dieser nicht in der Spalte schonmal vorkommt, fals er das tut sollte eine msgbox ausgegeben werden in der steht das diese schon vorhanden ist. Ich scheitere daran das ich nicht weiß wie ich die Spalte so verpacken kann das ich sie mit dem Textfeld vergleichen kann und dann zu dem richtigen Ergebniss komme. Ich hab schonmal angefangen was zu schreiben und bis auf dem bin ich eigendlich Fertig, denk ich zumindest. Fals nicht bitte klärt mich auf :).
Ich danke euch schonmal für eure mühen und wünsche euch einen schönen Tag.

Sub Save_expectation
obj_Projekt = obj_Drawpage.forms.getByName(MainForm).getByName("txtProjektnummer")
dim ????????????????? as object
If obj_Projekt = ????????????????? Then
MsgBox "Projektnummer bereits vorhanden",0,"Projektnummer doppelt"
Else
On Error goto ErrorHandler
dim document as object
dim dispatcher as object
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(document, ".uno:RecSave", "", 0, Array())
Exit If
ErrorHandler:
MsgBox "Das sollte nicht Passieren bitte Kontaktieren sie Ihren Administrator",0,"Unerwarteter Fehler"
End If
End Sub

Mit freundlichen Grüßen

Ryoho

Ryoho
Beiträge: 48
Registriert: Fr 26. Jul 2013, 08:36

Re: Save Button mit einer Abfrage aus einer Tabelle

Beitrag von Ryoho » Mi 12. Nov 2014, 11:29

Ok, dann Entschuldigung =)
Ich geb jetzt mein bestes dies zu beschreiben und ebenfalls noch in dem anderen Forum einzubinden.
Eine Beispieldatei hänge ich an, was ich als letztes Makro angefasst habe ist das was ich hier gepostet habe.
Ich versuch über das Formular neues_Projekt_erstellen einen Button einzubinden in dem ein Speichern Makro hinterlegt ist, und da der "Normale User" (nach aussage von dessen) die Fehlermeldung nicht versteht die LibreOffice ausgibt, wenn man ein Duplikat einträgt bei txtProjektnummer einträgt, will ich diese Abfangen und eine MSGBOX ausgeben lassen, und am Ende soll dieses Formular nach dem Speichern geschlossen werden (Codes sind vorhanden).
Nun ist es so das ich es nicht schaffe diese Fehlermeldung abzufangen, also wollte ich es vor dem Speichern überprüfen lassen und somit nicht die Möglichkeit geben diese Fehlermeldung überhaupt zu bringen.
Ich hab Einige Daten gelöscht da sie dem Datenschutz unterliegen. Ich hoffe man kann mit der Datei trotzdem noch einiges anfangen.

Edit: Wenn noch etwas unklar ist bescheid sagen
Betriebssystem Windows 7 Pro 64 bit
64 bit LibreOffice Version: 4.3.3.2
Java Version 8 Update 25
Makrosicherheit ist auf Niedrig gestellt
Dateianhänge
Beispiele Angebotslaufzettel.zip
(863.91 KiB) 208-mal heruntergeladen

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Save Button mit einer Abfrage aus einer Tabelle

Beitrag von F3K Total » Mi 12. Nov 2014, 21:28

Moin,
versuch dieses:

Code: Alles auswählen

Sub S_ID_ALREADY_EXISTS(event)
    dim nID as long
    otxtfield = event.source.model
    nID = otxtfield.Text
    oform = otxtfield.parent
    ocon = oform.activeconnection
    SQL_Statement = ocon.createStatement
    sSQL = "SELECT COUNT(*) FROM ""Angebotslaufzettel"" WHERE ""Projektnummer"" = " + nID
    SQL_Result = SQL_Statement.executequery(sSQL)
    if SQL_Result.next then
        if SQL_Result.getint(1) > 0 then
         MsgBox "Projektnummer bereits vorhanden",0,"Projektnummer doppelt"
        endif
    endif
end sub
Binde das Makro an das Ereignis "Modifiziert" des Feldes txtProjektnummer

HTH R
Dateianhänge
Beispiele Angebotslaufzettel.zip
(865.98 KiB) 213-mal heruntergeladen
Windows 11: AOO, LO Linux Mint: AOO, LO

Ryoho
Beiträge: 48
Registriert: Fr 26. Jul 2013, 08:36

Re: Save Button mit einer Abfrage aus einer Tabelle

Beitrag von Ryoho » Mo 24. Nov 2014, 08:35

Perfekt, genau sowas hab ich gesucht! dank dir dafür! und danke für die investierte Zeit!


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten