und vielen Dank für die Aufnahme. Leider habe ich gleich eine Frage zur VBA Programmierung in Base. Da ich selbst nicht der Crack bin, verstehe ich vermutlich das zugrunde liegende Programmierparadigma nicht und bräuchte dazu einen Denkanstoß.
Geben ist eine SQL-DB (mySQL) mit einer 1:n Relation
Tabelle Kunde
Name varchar
Tabelle Auftrag
Baustelle varchar
Erledigungsdatum
Sprich ein Kunde kann mehrere Baustellen haben.
Im einem Formular in Base ist der Kunde in einem Tablecontrol editierbar und in einem SubForm, ebenfalls als Tablecontrol, jeder zugehörige Auftrag. Mittel Checkbox soll gefiltet werden, ob auch Erledigte Aufträge im Tablecontrol angezeigt werden sollen oder nicht.
Jetzt kommen die Fragen:
Frage 1: Wenn ich in der Sub Checkbox ein SQL-SELECT absetze erhalte ich ein ResultSet. Wie weise ich dieses ResultSet dem Tablecontrol zu? Muss ich dazu wirklich durch das ResultSet iterieren oder gibt es eine Art Kopier- oder Zuweisungskonstruktor wie oTable(oResult)?
Frage 2: Wenn ich Zeilen hinzufügen oder löschen möchte, sollte ich das im ResultSet oder in der Tablle tun? Hinweis dazu: Ich möchte die Änderung nicht in die Datenbank übertragen. Es soll also nur ein anderer View auf die Daten erzeugt werden?
Frage 2a: Falls die Antwort ResultSet wäre, wie modfiziere ich ein ResultSet? So?
Code: Alles auswählen
CloneRS = oForm.createResultSet() rem : CloneRS.Last()
oRS=oTable.getRowSet()
while CloneRS.next
s = CloneRS.Columns.getByName("Erledigungsdatum").getString()
loRow = oForm.getRow()
if (s = "") then
rem Auftrag ist aktiv
else
oForm.deleteRow()
rem Auftrag ist erledigt
end if
wend
rem -->> ResultSet in Tabelle übertragen
oForm.reload()
Da ich noch Probleme habe, vielleicht kann mir das jemand erklären? Ein ResultSet ist das Ergebnis eines SELECT auf eine Datenmenge, somit ein View auf die DB und eine Tabelle ist ein View auf ein ResultSet? Oder sehe ich den Wald vor lauter Bäumen nicht? Ich habe versucht aus der Doku (Base_Gesamtband) schlau zu werden, aber irgendwie bin ich zu doof dafür.