Hallo nochmals,
also, (wie aus einem vorherigen Thema hervorgeht ist) meine DB nun endgltig nicht mehr zu retten.
Ich habe nun mehr als drei Tage umsonst gearbeitet und würde mich freuen, wenn jemand von euch mir helfen könnte:
Im Anhang ist eine DB, (frisch erstellt, zu Demozwecken, nur eine Tabelle) mit einem Formular.
1)
Ich würde gerne mittels der vorh. Listbox einen Datensatz selektieren und dann das Formular neuladen, damit eben dieser Datensatz angezeigt wird.
2)
Es ist ein Button zu finden, welcher als Switch zum (de-) aktivieren der Optionen "Datensatz löschen", "- erstellen", "- bearbeiten" dienen sollte, um dem Anwender mehr Sicherheit zu ermöglichen.
Ich habe wirklich seeehr sehr (!) viel die Suchfunktion bemüht und spiele seit mehr als drei Tagen nur noch mit Makros rum, aber ich verrennen mich mittlerweile in dem Haufen halbfertigen Skripts und nun ist ja meine DB eh ganz kaputt...
Könnte einer von euch das kurz realisieren und erneut hochladen?
Ich würde mich SEHR darüber freuen, wirkich!!!!
Lieben Dank
Manuel
Da DB zerstört, Hilfe gesucht...
Moderator: Moderatoren
Da DB zerstört, Hilfe gesucht...
- Dateianhänge
-
- TestDB.odb
- (11.22 KiB) 141-mal heruntergeladen
Systeminfos:
OOo 3.2.0, HSQL, Windows 7 (32bit)
OOo 3.2.0, HSQL, Windows 7 (32bit)
Re: Da DB zerstört, Hilfe gesucht...
Hallo hobby,
hiermit kannst du den Schreibschutz ein/ausschalten, den Tipp habe ich von dpunch
viewtopic.php?f=8&t=37963
Sub SchreibschutzMainForm
oDoc = thisComponent
oForm = oDoc.Drawpage.Forms(0) 'Formular
oForm.AllowDeletes = NOT oForm.AllowDeletes 'löschen
oForm.AllowInserts = NOT oForm.AllowInserts 'hinzufügen
oForm.AllowUpdates = NOT oForm.AllowUpdates 'ändern
oForm.reload
End Sub
ddraht
hiermit kannst du den Schreibschutz ein/ausschalten, den Tipp habe ich von dpunch
viewtopic.php?f=8&t=37963
Sub SchreibschutzMainForm
oDoc = thisComponent
oForm = oDoc.Drawpage.Forms(0) 'Formular
oForm.AllowDeletes = NOT oForm.AllowDeletes 'löschen
oForm.AllowInserts = NOT oForm.AllowInserts 'hinzufügen
oForm.AllowUpdates = NOT oForm.AllowUpdates 'ändern
oForm.reload
End Sub
ddraht
MySQL 5.5.9
Oo 3.3.0, Build 9567
Mac os x 10.7.2
Oo 3.3.0, Build 9567
Mac os x 10.7.2
Re: Da DB zerstört, Hilfe gesucht...
Hallo ddraht,
vielen Dank für den Hinweis!
Nur eine Frage: Sobald ich auf den Button klicke kann ich auch keinen Datensatz aus der Listbox auswählen, da dieses nun auch gesperrt wurde.
Nun dachte ich mir, man könne dem vielleicht entgehen, wenn man ein zweites Formular einfügt (jedoch mit derselben Tabelle wir das MainForm verknüpft) und dann im Makro zum Datensatz-asuwählen nicht wie folgt das Formular ermittelt
sondern das zweite Formular. Kannst du mir das noch verraten bzw. ist mein Weg zum kompliziert /falsch gedacht? Ich habe es mal wie folgt probiert, jedoch ohne Erfolg:
Und: Da der Button ja wie ein Switch / Taster funktioniert, wäre es vielleicht möglich den Text des Buttons zu ändern bzw. ein kleines Bild? Bspw. ein geöffnetes bzw. geschlossenes Schloß etc.?
Vielen herzlichen Dank!!!
PS.: Wg der Schreibschutz-Sache:
1) Nach anklicken springt mein Formular automatisch auf den ersten Listeneintrag zurück. Weiß jemand warum?
2) Ich habe das Forum hier nach "Trigger","Switch","Umschalt" durchsucht, leider ohne Erfolg:
Wie kann ich nicht nur die Schreibrechte switchen, sondern auch den Text, also das Label?
So, wie folgt, geht es schon einmal nicht...

vielen Dank für den Hinweis!
Nur eine Frage: Sobald ich auf den Button klicke kann ich auch keinen Datensatz aus der Listbox auswählen, da dieses nun auch gesperrt wurde.
Nun dachte ich mir, man könne dem vielleicht entgehen, wenn man ein zweites Formular einfügt (jedoch mit derselben Tabelle wir das MainForm verknüpft) und dann im Makro zum Datensatz-asuwählen nicht wie folgt das Formular ermittelt
Code: Alles auswählen
oForm = ThisComponent.drawpage.forms.getbyindex(0)
Code: Alles auswählen
oForm = ThisComponent.drawpage.forms.getbyindex(1)
Vielen herzlichen Dank!!!
PS.: Wg der Schreibschutz-Sache:
1) Nach anklicken springt mein Formular automatisch auf den ersten Listeneintrag zurück. Weiß jemand warum?
2) Ich habe das Forum hier nach "Trigger","Switch","Umschalt" durchsucht, leider ohne Erfolg:
Wie kann ich nicht nur die Schreibrechte switchen, sondern auch den Text, also das Label?
So, wie folgt, geht es schon einmal nicht...

Code: Alles auswählen
Sub SchreibschutzMainForm
oDoc = thisComponent
oForm = oDoc.Drawpage.Forms(0) 'Formular
Button = oForm.getByName("PushButton") 'Button
AUF = Button.Label = "Geoeffnet"
ZU = Button.Label = "Schreibschutz"
AUF = ZU
oForm.AllowDeletes = NOT oForm.AllowDeletes 'löschen
oForm.AllowInserts = NOT oForm.AllowInserts 'hinzufügen
oForm.AllowUpdates = NOT oForm.AllowUpdates 'ändern
oForm.reload
End Sub
Systeminfos:
OOo 3.2.0, HSQL, Windows 7 (32bit)
OOo 3.2.0, HSQL, Windows 7 (32bit)
Re: Da DB zerstört, Hilfe gesucht...
Ahm ich weill ja nicht unhöflich wirken aber gehts noch?
Was sollen wir denn noch in deinem Projekt realisieren ? *g*
Na komm im ernst. Wenn du Lösungsmöglichkeiten suchst (welche eigentlich ganz einfach selbst zu mahen wären) dann können wir dich auf die richtige spur bringen aber realisieren tus doch bitte selbst
Hinzukommt das das gar nicht so trivial ist bzw sein kann je nach anforderung.
Wenns nur um ein simples entsperren (ohne passwort oder credentials ist) kannst du relativ leicht lösen.
erstens eine formularweite boolean variable die gesperrt anzeigt ja/nein
jetzt musst du erstmal den button ein onklick event machen sowas nach dem motto
if sperrvar= true then sperrvar = false else sperrvar = true
- logisch damit wird mal der zustand der sperrvar jeweisl geswitcht
so als nächstes natürlich musst du die objekte aktualisieren. kannst du eigentlich gleich darunter machen
(sorry ich weis jetzt nicht den oosyntax
if sperrvar = true then button.property.visible = false
usw halt eben
ich würde eher nur die eingabe buttons etc abzw die editierfähigkeit der formcontrolls setzen.
Das hat 2 Vorteile. Wenn das Form entladen wird ist alles wieder so wie du es im onload spezifizierst
2: der user kann erst gar nichts in ein feld schreiben.
die andere methode oben hat den nachteil das felder editierbar bleiben und der user leicht vergessen kann zu entsperren
Was sollen wir denn noch in deinem Projekt realisieren ? *g*
Na komm im ernst. Wenn du Lösungsmöglichkeiten suchst (welche eigentlich ganz einfach selbst zu mahen wären) dann können wir dich auf die richtige spur bringen aber realisieren tus doch bitte selbst
Hinzukommt das das gar nicht so trivial ist bzw sein kann je nach anforderung.
Wenns nur um ein simples entsperren (ohne passwort oder credentials ist) kannst du relativ leicht lösen.
erstens eine formularweite boolean variable die gesperrt anzeigt ja/nein
jetzt musst du erstmal den button ein onklick event machen sowas nach dem motto
if sperrvar= true then sperrvar = false else sperrvar = true
- logisch damit wird mal der zustand der sperrvar jeweisl geswitcht
so als nächstes natürlich musst du die objekte aktualisieren. kannst du eigentlich gleich darunter machen
(sorry ich weis jetzt nicht den oosyntax
if sperrvar = true then button.property.visible = false
usw halt eben
ich würde eher nur die eingabe buttons etc abzw die editierfähigkeit der formcontrolls setzen.
Das hat 2 Vorteile. Wenn das Form entladen wird ist alles wieder so wie du es im onload spezifizierst
2: der user kann erst gar nichts in ein feld schreiben.
die andere methode oben hat den nachteil das felder editierbar bleiben und der user leicht vergessen kann zu entsperren
Re: Da DB zerstört, Hilfe gesucht...
Hallo bofh, vielen Dank für deine Antwort!bofh hat geschrieben:Ahm ich weill ja nicht unhöflich wirken aber gehts noch?
Was sollen wir denn noch in deinem Projekt realisieren ? *g*
Na komm im ernst. Wenn du Lösungsmöglichkeiten suchst (welche eigentlich ganz einfach selbst zu mahen wären) dann können wir dich auf die richtige spur bringen aber realisieren tus doch bitte selbst
Du versuchst wohl, deinem Nickname alle Ehre zu erweisen, hm?
Abgesehen von deiner Pseudocode-Hilfestellung (vielen Dank dafür!) wüsste ich nicht, wobei DU mir bei meinem "Projekt" geholfen hättest???
Aber egal. Ich bleibe besser konstruktiv; daher mein bisheriger Lösungsansatz:
Code: Alles auswählen
Sub SchreibschutzMainForm
Dim oForm, oListbox As Object
Dim LB_Item as integer
oForm = ThisComponent.drawpage.forms.getbyindex(0)
oListbox = oForm.getByName("ListBox")
LB_Item = oListbox.SelectedItems(0)
MsgBox LB_Item, 0
oForm.absolute (LB_Item +1)
oForm.AllowDeletes = NOT oForm.AllowDeletes 'löschen
oForm.AllowInserts = NOT oForm.AllowInserts 'hinzufügen
oForm.AllowUpdates = NOT oForm.AllowUpdates 'ändern
oForm.reload
End Sub
Code: Alles auswählen
oForm.absolute (LB_Item +1)
Darüberhinaus habe ich zu Testzwecken eine MsBox eingebaut, um mir die Auswahl bestätigen zu lassen:
Code: Alles auswählen
MsgBox LB_Item, 0
Jedoch springt, nach dem Klick, dennoch das Formular auf den ersten Datensatz zurück. Kann es sein, dass diese Auswahl irgendwo irgendwie im Formular gespeichert werden muss, um den "Form.reload" zu überleben?
Ich habe auch schon das Forum durchsucht, jedoch ohne Erfolg. Der Beitrag hier brachte mich auf die Idee mit dem
Code: Alles auswählen
oForm.updateRow()
So, könnte mich nun jemand auf den rechten Weg führen???
Systeminfos:
OOo 3.2.0, HSQL, Windows 7 (32bit)
OOo 3.2.0, HSQL, Windows 7 (32bit)