Datensatz per Macro speichern
Moderator: Moderatoren
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Datensatz per Macro speichern
Wenn Du BASIC kannst...
erstelle eine Schaltfläche "Übernehmen" und lese die Dateiauswahl aus.
Dann speichere den Datensatz.
Wo ist Dein konkretes Problem?
erstelle eine Schaltfläche "Übernehmen" und lese die Dateiauswahl aus.
Dann speichere den Datensatz.
Wo ist Dein konkretes Problem?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Datensatz per Macro speichern
War Deine Suche inzwischen erfolgreich?chris246 hat geschrieben:Ich suche nach dem Code, wie ich einer konkrete Zelle einer Datenbanktabelle einen zu speichernden Wert übergeben kann.
Du hast das Textfeld des Formulars auf die DB-Spalte gebunden: warum wird nach der Dateiauswahl der Pfad "nicht immer" gespeichert?
Fehler in Deinem Coding?
XRAY hast Du im Einsatz?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Re: Datensatz per Macro speichern
Hi,
Für das speichern direkt habe ich nichts gecodet, da ich wie gesagt nicht weiß, wie ich per Code auf eine Datenbanktabelle zugreife.
Was ist XRAY?
Schonmal danke für Deine Hilfe.
lg
chris
Nein, leider nichtkomma4 hat geschrieben: War Deine Suche inzwischen erfolgreich?
Ich kann das Speichern manuell anstoßen, indem ich in das schreibgeschützte Textfeld, in das der Pfad übernommen wurde, Zeichen eintippe(diese erscheinen durch den Schreibschutz zwar nicht, aber das Speicherevent wird ausgelöst).komma4 hat geschrieben: Du hast das Textfeld des Formulars auf die DB-Spalte gebunden: warum wird nach der Dateiauswahl der Pfad "nicht immer" gespeichert?
Fehler in Deinem Coding?
Für das speichern direkt habe ich nichts gecodet, da ich wie gesagt nicht weiß, wie ich per Code auf eine Datenbanktabelle zugreife.
Was ist XRAY?
Schonmal danke für Deine Hilfe.

lg
chris
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Datensatz per Macro speichern
a) warum ist das Textfeld schreibgeschützt?chris246 hat geschrieben:Ich kann das Speichern manuell anstoßen, indem ich in das schreibgeschützte Textfeld, in das der Pfad übernommen wurde, Zeichen eintippe(diese erscheinen durch den Schreibschutz zwar nicht, aber das Speicherevent wird ausgelöst).
Für das speichern direkt habe ich nichts gecodet, da ich wie gesagt nicht weiß, wie ich per Code auf eine Datenbanktabelle zugreife.
Was ist XRAY?
b) die Übernahme in das Textfeld löst also nicht das "Datensatz geändert"-Ereignis aus
c) XRAY ist ein Debugger, welche Dir Methoden und Inhalte eines zu untersuchenden Objekts ausgibt. Du solltest Deine Suche mal ausweiten... hier im Forum gibt es massig Verweise auf dieses Tool.
Für b) meine ich auch hier schon ein Stück Code gesehen zu haben?!!
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Re: Datensatz per Macro speichern
zu
a) Es ist schreibgeschützt, da ich versucht hatte, mittels dieses Textfeldes den Pfad zu speichern, was aber nicht ging. Da der Pfad per CommonDialog ausgewählt wird, muss man ihn nicht bearbeiten können.
b)Nein; Den Code, den ich bis jetzt verwende, habe ich in einem vorigen Beitrag schon gepostet
Mehr hab ich noch nicht.
c) Ok
a) Es ist schreibgeschützt, da ich versucht hatte, mittels dieses Textfeldes den Pfad zu speichern, was aber nicht ging. Da der Pfad per CommonDialog ausgewählt wird, muss man ihn nicht bearbeiten können.
b)Nein; Den Code, den ich bis jetzt verwende, habe ich in einem vorigen Beitrag schon gepostet

c) Ok
Re: Datensatz per Macro speichern
Das VisualBasic-Pendant zu dem was ich suche, geht in die Richtung:
Vorausgesetzt ist, dass man sich in der richtigen Zeile befindet.
Zurück zu meiner Frage:
Nachdem der Datensatz bereits angelegt wurde, muss ich ja eigentlich nur den Update-Befehl ausführen
Code: Alles auswählen
'Hinzufügen
AdoDC.Recordset.AddNew
AdoDC.Recordset!Spaltenname = "Wert"
'Updaten:
AdoDC.Recordset.Update "Spaltenname", "Wert"
Zurück zu meiner Frage:
Nachdem der Datensatz bereits angelegt wurde, muss ich ja eigentlich nur den Update-Befehl ausführen
Re: Datensatz per Macro speichern
Aloha
Versuch es mal hiermit:
Das Boundfield ist der Teil der Textbox, der tatsächlich an das RowSet gebunden ist, mit dem Du in dem Formular arbeitest.
Der "normale" Text ist lediglich der Teil, der im Model angezeigt wird.
Intern wird aller Voraussicht nach bei jedem KeyPress im Model automatisch ein Update des Boundfields ausgelöst, jedoch nicht beim Setzen des Textes per Makro.
Versuch es mal hiermit:
Code: Alles auswählen
Sub FileSelect
Doc = ThisComponent
Form = doc.drawpage.forms.getbyindex(0)
Ctl = Form.getByName("txtSaved")
Ctl2 = Form.getByName("FileSelection")
'Ctl.text = ctl2.text 'Übernimmt den ausgewählten Pfad in ein Textfeld, in der Hoffnung, dass dieses, verbunden mit einer
'Spalte, den Wert bei TextChange speichert. Allerdings wird dieses Event bei Wertänderung per Code
'nicht aufgerufen, folglich wird auch nichts gespeichert.
'************************************************
Ctl.Boundfield.updateString(Ctl2.Text)
'************************************************
Form.updateRow '***Natürlich nur, wenn das sofortige Speichern in der Tabelle gewünscht ist, ansonsten eben einfach weglassen
Ctl3 = Form.getByName("ImageControl")
Bild=ConvertToUrl(ctl2.text)
Ctl3.imageURL=Bild 'Ausgewähltes Bild anzeigen.
end sub
Der "normale" Text ist lediglich der Teil, der im Model angezeigt wird.
Intern wird aller Voraussicht nach bei jedem KeyPress im Model automatisch ein Update des Boundfields ausgelöst, jedoch nicht beim Setzen des Textes per Makro.
Re: Datensatz per Macro speichern
Hallo Zusammen,
ich hatte auch mal ein Problem mit einem per Code gefüllten Textfeld dessen Inhalt nicht in die Datenbank geschrieben wurde.
Man konnte das umgehen, indem man hinter den Text manuell den Cursor setzte und die Entertaste drückte.
Nicht gerade praktikabel.
Unser lieber Freund eBayer hatte hier im Forum dazu was geschrieben und eine Beispiel-DB hochgeladen die aber leider nicht mehr verfügbar ist.
Was ich dazu jetzt noch gefunden habe ist folgendes:
Eine Function nach eBayer-Methode sieht dann folgendermassen aus:
Ich hoffe das hilft weiter.
Jürgen
ich hatte auch mal ein Problem mit einem per Code gefüllten Textfeld dessen Inhalt nicht in die Datenbank geschrieben wurde.
Man konnte das umgehen, indem man hinter den Text manuell den Cursor setzte und die Entertaste drückte.
Nicht gerade praktikabel.
Unser lieber Freund eBayer hatte hier im Forum dazu was geschrieben und eine Beispiel-DB hochgeladen die aber leider nicht mehr verfügbar ist.
Was ich dazu jetzt noch gefunden habe ist folgendes:
Also was hier entscheidend ist, ist dieser Commit-Befehl.eBNayer hat geschrieben:GlobalForm.getByName(FeldName).commit(true) (Commit ist notwendig, damit das Formular die Änderung auch mitbekommt und beim speichern berücksichtigt)
Viel Erfolg
eBayer
Eine Function nach eBayer-Methode sieht dann folgendermassen aus:
Code: Alles auswählen
Function setTextField(oDoc, FeldName, Inhalt)
Dim oForm As Object
oForm = oDoc.drawpage.forms.getbyindex(0)
oForm.getByName(FeldName).text = Inhalt
oForm.getByName(FeldName).commit(true) ' mit "commit" wird quasi die Enter-Taste simuliert
End Function
Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Re: Datensatz per Macro speichern
turtles Lösung (bzw. die von eBayer) ist sogar noch kürzer und leichter und funktioniert auf die gleiche Weise.
Über das Commit bin ich mit X-Ray auch gestolpert, aber da es sowohl dort als auch in der API
(http://api.openoffice.org/docs/common/r ... onent.html)
eine parameterlose Methode mit einem Bool'schen-Rückgabewert ist, habe ich mich nicht weiter damit beschäftigt.
OOo Basic (bzw. OOo Basic Dokumentation) at its finest.
Über das Commit bin ich mit X-Ray auch gestolpert, aber da es sowohl dort als auch in der API
(http://api.openoffice.org/docs/common/r ... onent.html)
eine parameterlose Methode mit einem Bool'schen-Rückgabewert ist, habe ich mich nicht weiter damit beschäftigt.
OOo Basic (bzw. OOo Basic Dokumentation) at its finest.
Re: Datensatz per Macro speichern
Hallo zusammen.....
noch habe ich nicht aufgegeben.
Ich stelle nochmal mein Beispielprogramm mit vielen Praxisbeispielen rein.
Viel Spaß.
@turtle.... danke für die lieben Worte, ich mache weiter solange es geht.
Gruß eBayer
noch habe ich nicht aufgegeben.
Ich stelle nochmal mein Beispielprogramm mit vielen Praxisbeispielen rein.
Viel Spaß.
@turtle.... danke für die lieben Worte, ich mache weiter solange es geht.
Gruß eBayer
- Dateianhänge
-
- Florian1.zip
- (40.72 KiB) 363-mal heruntergeladen
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Re: Datensatz per Macro speichern
Hi,
vielen Dank euch Allen
Welche Lösung ich verwendem weiß ich noch nicht genau.
@eBayer: Danke für die DB. Nachdem jetzt endlich erstmal die Klausurzeit um ist, hab ich bald mal Zeit, mir die anzuschauen
lg
chris
vielen Dank euch Allen

Welche Lösung ich verwendem weiß ich noch nicht genau.
@eBayer: Danke für die DB. Nachdem jetzt endlich erstmal die Klausurzeit um ist, hab ich bald mal Zeit, mir die anzuschauen

lg
chris
Re: Datensatz per Macro speichern
puh da hat DPunch bzw ebayer mir gerad richtig aus schlinge geholfen mit mein projekt^^...
hmm bei mir ergab sich folgendes mit den methoden:
jutti thx an das forum 
hmm bei mir ergab sich folgendes mit den methoden:
Code: Alles auswählen
ogemeinde.setPropertyValue("EffectiveValue","String")
ogemeinde.commit(true)
' hat den Wert in die Datenbank gespeichert
ogemeinde.text = "String"
ogemeinde.commit(true)
' hier hat er nichts gespeichert, womöglich reicht text nicht.
ogemeinde.Boundfield.updateString("String")
'funktioniert ebenfalls
