Seite 1 von 1
Markierten Datensatz eines Tabellen-Kontrollfeldes ins Makro
Verfasst: Sa 30. Mär 2013, 11:29
von aglori
Hallo,
für eine kleine Goldschmiede bastele ich auf Calc Sheets eine Datenbank-Anwendung, welches Kunden und dessen Aufträge verwaltet. Mit Makros habe ich kaum Erfahrung, aber ich übe mich dran:-) Ich würde gerne folgendes einbauen:
Der Benutzer soll aus einem Tabellen-Kontrollfeld einen Datensatz (Kunde) markieren. Dann kann er auf eine Schaltfläche klicken. Das Makro müsste nun das Tabellenblatt wechseln (wurde bereits gelöst) und im neuen Tabellenblatt zu dem vorher markierten Datensatz ( Entsprechend der KundenNr) springen.
Der Punkt wo ich im Internet keinen Ansatz finde liegt darin, den markierten Datensatz des Tabellen-Kontrollfeldes aus dem Makro heraus auszulesen.
Hat jemand eine Idee?
danke, Andreas
Re: Markierten Datensatz eines Tabellen-Kontrollfeldes ins M
Verfasst: Sa 30. Mär 2013, 12:27
von F3K Total
Hi,
das auslesen der Kundennummer geht mit diesem Makro:
Code: Alles auswählen
sub S_Find_KD_ID
oForm = thisComponent.sheets(0).Drawpage.Forms.getByName("Formular")
ncolumn = oform.findcolumn("KundenNr")
nKundennummer = oform.getint(ncolumn)
msgbox nKundennummer
end sub
Viel erfolg
R
Re: Markierten Datensatz eines Tabellen-Kontrollfeldes ins M
Verfasst: Sa 30. Mär 2013, 12:53
von F3K Total
Hi,
ich habe dir noch das "rüberhüpfen" eingebaut:
Das Makro
ließt die Kundennummer aus und übergibt sie mit dem Aufruf
an das Makro Tabellenwechsel, welches die Kundennummer mit diesem Aufruf
wiederum an das Makro
übergibt.
Die Übergabe an
habe ich
optional gestaltet, so funktioniert die ursprüngliche Suche aus dem Textfeld weiterhin weil mit dieser Unterscheidung
Code: Alles auswählen
if ismissing(Kundennummer) then
sFilter = (oTextfeld.Text) 'Suchtext aus Textbox
else
sFilter = Kundennummer
endif
ermittelt wird, ob die Kundennummer übergeben wurde. Wenn nicht (ismissing), wird der Inhalt des Textfeldes als Filter verwendet.
Viel Erfolg
Gruß R
Re: Markierten Datensatz eines Tabellen-Kontrollfeldes ins M
Verfasst: Sa 30. Mär 2013, 13:22
von aglori
Ganz ehrlich, ich bin Baff. Es funktioniert. Ich werde mir jetzt Deinen Code ganz in Ruhe ansehen. Danke!
Re: Markierten Datensatz eines Tabellen-Kontrollfeldes ins M
Verfasst: So 31. Mär 2013, 00:55
von F3K Total
Hallo aglori,
ich hätte da noch drei Vorschläge für Dich:
- Du hast die Formulare in Calc erstellt, warum? Sie könnten auch innerhalb von Base liegen. So hättest du nur eine Datei.
- Die drei Foto Spalten sind nicht so gut, besser wäre eine eigene Fototabelle mit den vier Spalten
- "ID_Foto" INTEGER AUTOINCREMENT
- "FK_ID_Tuete" INTEGER
- "Name" VARCHAR[255]
- "URL" VARCHAR[255]
in einem weiteren Subformular unter dem Subformular "Auftraege", verknüpft über die Tüten-ID "TuetenNr" mit "FK_ID_Tuete". So könntest Du, unabhängig, so viele Fotos pro Tüte verwalten, wie du willst. Da baust Du noch ein Tabellenkontrollfeld in das Formular "Fotos" ein, mit dem du das anzuzeigende Foto auswählen kannst.
- Jetzt noch ein Dateiauswahlkontrollfeld zum Einlesen des Foto-URL, mit dem folgenden kleinen Makro und die Welt ist in Ordnung
Code: Alles auswählen
sub S_pick_File
oform = thisComponent.drawpage.forms.Kunden.Auftraege.Fotos
ofilepicker = oform.filepicker
sURL = converttourl(ofilepicker.Text)
sfilename = inputbox ("Bitte Benennung eingeben","Foto einlesen",sURL)
if ofilepicker.Text = "" then exit sub
if not oform.isnew then oform.movetoinsertRow
oform.updatestring(3,sfilename)
oform.updatestring(4,sURL)
oform.insertRow()
end sub
Gruß R
Re: Markierten Datensatz eines Tabellen-Kontrollfeldes ins M
Verfasst: Mi 8. Mai 2013, 16:17
von aglori
Hallo F3K Total,
vielen Dank noch einmal für die weiteren Tipps. Ich habe erst jetzt wieder ins Forum geschaut. Ich finde es recht praktisch, dass man in Calc so einfach zwischen den Formularen bzw. Sheets wechseln kann. In Base muss man immer erst die Base - Datei und dann auf das entsprechende Formular klicken. Wahrscheinlich war ich aber auch einfach zu faul, mich damit zu beschäftigen, wie man innerhalb von Base Formularen wechselt.
Ja, mit den Foto Spalten hast Du recht, das hätte ich machen sollen. Ich werde mal sehen, was ich davon noch umsetzen kann.
Danke nochmal!