Hallo Miteinander,
ich will für eine intere Umfrage ein Formular bauen. Die optimale Lösung wäre, daß Base je nach Antwort nach einem vorher definiertem Schema zur nächsten Frage wandert. Da ich davon ausgehe, daß es das nicht tun wird, dachte ich mir, ich probier das ganze einfach über zwei Buttons, je nach vorheriger Antwort (quasi "Hast Du ja angegeben, drücke Button 1, ansonsten Button 2).
Per Makro das Formular öffnen ist nicht das Problem (wurde ja mittlerweile hier im Forum oft genug diskutiert), aber wie in aller Welt bring ich Base dazu, mir den richtigen Datensatz zum Bearbeiten zu geben und nicht im neuen Formular bei Datensatz 1 wieder anzufangen? Kann ich irgendwie das neue Formular dazu bringen, z.B. einen Select-Befehl auszuführen, bei dem in der WHERE-Klausel auf das ID-Feld des vorhergehenden Formulars verwiesen wird? Oder gibts da einen eleganteren Weg?
Ich wäre über jede Form der Anregung sehr dankbar, da ich nicht mehr weiter weiß.
Viele Grüße
AhQ
Formular per Makro öffnen, richtigen Datensatz bearbeiten
Moderator: Moderatoren
Re: Formular per Makro öffnen, richtigen Datensatz bearbeiten
hi,
ich weiß nicht ob es zielführend ist, aber kannst du nicht eine globale Varible definieren, die die Zeilennummer deines nächsten Datensatzes enthält und die du mit dem Absenden des Buttons auf den nächsten Wert setzt?
im Handbuch steht doch, dass wenn man eine Variable noch vor der ersten SUb oder einer Function initialisiert, behält sie für das gesamte Modul Gültigkeit:
Sozusagen:
DIm Counter as Integer
SUB deinmakrodasdugeschriebenhast
counter =1 (oder auch drei oder vier oder was weiß ich)
End sub
und dann rufst du ja irgendw einen Select auf, der dir die nächste Frage bereitstellt, oder?
dort dann: ssql= ("select irgendwas from irgendwem WHERE ID = '" + Counter + "')
Wäre das nicht vielleicht möglich...
nur so zum Vorschlag
Gruß
Otternase
ich weiß nicht ob es zielführend ist, aber kannst du nicht eine globale Varible definieren, die die Zeilennummer deines nächsten Datensatzes enthält und die du mit dem Absenden des Buttons auf den nächsten Wert setzt?
im Handbuch steht doch, dass wenn man eine Variable noch vor der ersten SUb oder einer Function initialisiert, behält sie für das gesamte Modul Gültigkeit:
Sozusagen:
DIm Counter as Integer
SUB deinmakrodasdugeschriebenhast
counter =1 (oder auch drei oder vier oder was weiß ich)
End sub
und dann rufst du ja irgendw einen Select auf, der dir die nächste Frage bereitstellt, oder?
dort dann: ssql= ("select irgendwas from irgendwem WHERE ID = '" + Counter + "')
Wäre das nicht vielleicht möglich...
nur so zum Vorschlag
Gruß
Otternase
Re: Formular per Makro öffnen, richtigen Datensatz bearbeiten
Hallo Otternase,
danke, daß Du Dir Gedanken zu meinem Problem machst. Ich bin mir aber nicht sicher, ob es mit einem Counter geht, da es theoretisch sein kann, daß mehrere gleichzeitig in dem Formular sind und dann fürchte ich, daß mit einem Counter es nicht eindeutig ist, zu welchem Datensatz die Eingabe gehört. Oder hab ich da jetzt einen Denkfehler?
Viele Grüße
AhQ
danke, daß Du Dir Gedanken zu meinem Problem machst. Ich bin mir aber nicht sicher, ob es mit einem Counter geht, da es theoretisch sein kann, daß mehrere gleichzeitig in dem Formular sind und dann fürchte ich, daß mit einem Counter es nicht eindeutig ist, zu welchem Datensatz die Eingabe gehört. Oder hab ich da jetzt einen Denkfehler?
Viele Grüße
AhQ
Re: Formular per Makro öffnen, richtigen Datensatz bearbeiten
Hallo,
wenn mehrere menschen gleichzeitig an dem Formular arbeiten können sollen/müssen, dann fällt mir nur ein, den User mit Hilfe von getConnection (User) zu identifizieren. Wäre das möglich? Dann den User mit einer ID und der von ihm zuletzt beantworteten Fragennummer (getrow()) in einer eigenen Tabelle abspeichern. Aber das ist natürlich nicht schön, v.a. wenn du ein offenes Firmennetzwerk hast, in dem Passwortabfragen nicht üblich sind.
das ist das einzige was mir jetzt dazu einfällt...
wenn mir noch eine Idee kommt mailde ich mich...
grüße
Otternase
wenn mehrere menschen gleichzeitig an dem Formular arbeiten können sollen/müssen, dann fällt mir nur ein, den User mit Hilfe von getConnection (User) zu identifizieren. Wäre das möglich? Dann den User mit einer ID und der von ihm zuletzt beantworteten Fragennummer (getrow()) in einer eigenen Tabelle abspeichern. Aber das ist natürlich nicht schön, v.a. wenn du ein offenes Firmennetzwerk hast, in dem Passwortabfragen nicht üblich sind.
das ist das einzige was mir jetzt dazu einfällt...
wenn mir noch eine Idee kommt mailde ich mich...
grüße
Otternase
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Formular per Makro öffnen, richtigen Datensatz bearbeiten
Warum nicht?AhQ hat geschrieben:Da ich davon ausgehe, daß es das nicht tun wird,
Zeige Deine Frage an und erwarte die Antwort.
Deine Schaltflächen heisen: Weiter, letzte Frage, Abbrechen und Beenden.
Deine Tabellen
tabFrage: id, folgeID, vorherID, frage
tabBenutzer: id, name, timeBeginn
tabAntwort: idBenutzer, idFrage, antwort
Den Benutzernamen erhälst Du aus den Registry-Informationen.
Beim Öffnen des Formulars: lese Frage, wenn Antwort vorhanden, lese Folgefrage.
Führe einen Zähler der offenen/beantworteten Fragen im Formular mit oder ermittle bei einem Frage-Wechsel (SELECT COUNT(*) FROM tabAntwort WHERE idBenutzer = aktBenutzer).
Wenn alles beantwortet, bedanke Dich für die Teilnahme und schliesse.
Sonst kann der Benutzer blättern, vorhandene Antworten werden angezeigt.
Jede Eingabe wird beim Wechsel gespeichert....
Du verwendest eine richtige DBMS, wenn mehrere arbeiten sollen??
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: Formular per Makro öffnen, richtigen Datensatz bearbeiten
Hallo,
Danke schon mal Euch beiden!
AhQ
Ja, bei uns läuft MySQL, daß paßt. Den Rest muß mich mir jetzt mal in Ruhe durchdenken.komma4 hat geschrieben:Du verwendest eine richtige DBMS, wenn mehrere arbeiten sollen??
Danke schon mal Euch beiden!
AhQ