1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Tabcontrols Seite dynamisch erweitern

Dieses Thema im Forum "Visual Basic 6.0, VBA & VBScript" wurde erstellt von bowie1304, 10. Januar 2018.

  1. bowie1304

    bowie1304 Grünschnabel

    Hallo bin zwar nicht neu in VB aber VBA-Access ist was anderes als VB.
    Meine Frage.
    Tabcontrols sind eigentlich eine Tolle Sache, nur eins hat sich mir noch nicht erschlossen, dazu folgendes Beispiel.
    Ich habe ein Tabcontrol auf dem sich auf einer Seite 3 Control Elemente befinden, die Gefüllt werden können. 2 Textfelder und eine Checkbox. Gleichzeige habe ich auch einen Datensatz der mir diese drei Felder mit Werten abdeckt.
    So far so good, die Befüllung ist bis hier her keine Problem, wohl gemerkt ein Datensatz.
    Jetzt zu meinem Problem.
    Für diese Seite auf dem tabcontrol können allerdings auch mehr als ein Datensatz zurückgegeben werden.
    Wie erweitere ich, in abhängigkeit der anzahl der Datensätze die zurück gegeben werden, die tabcontrol Seite die es betrifft.
    Soll heißen ich bekomme Zwei Datensätze aus der Tabelle geliefert und die sollen jetzt auf einmal auf der entsprechenden Seite des Tabcontrols angezeigt werden.
    Meine Idee dazu war so ewtas wie eine Option group und die dann dynamisch auf der Seite darstellen.

    Ich weiß nicht weiter
    Gruß
    Willi
     
  2. Yaslaw

    Yaslaw n/a Moderator

    Mach ein Endlosformular mit den Daten drin.
    Dann machst du ein Formular mit dem TabControl. In das TabControl kannst du dein Endlosformular als Unterformular einfügen.
     
  3. bowie1304

    bowie1304 Grünschnabel

    gibt es keine andere Möglichkeit, oder hast du mal ein kurzes Beispiel. In Vb hab ich das ohne subformulare hinbekommen. Ich muss aber VBA-Access nehmen und da funzt das nicht. Das Problem ist das ich ein Recordset zurückbekomme und keine Datanebank Tabelle, da die Abfrage auf einen SQL-Server geht und auch von dort das Recordset.
     
  4. Yaslaw

    Yaslaw n/a Moderator

    Beispiele zu meinem einfachen Fall gibt es viele.
    Aber das entspricht nicht deinem Problem. Das scheint anders zu sein. Deine Erklärung ist recht komplex. Ich denke, ich habe nur ein Bruchteil verstanden.

    Also. du hast ein DAO oder ADODB Recordset. Kannst du nicht über ODBC die Tabelle/View als Datenquelle einbinden? Dan könntest du die Stärken von Access auch nutzen.
    Wenn du nur das Recordset hast und damit mit Formularen arbeiten willst, dann wird das sehr komplex.

    Am Einfachsten eine Tabelle in Access anlegen, die die gleiche Struktur hat.
    Die Records hineinkopieren.
    Mit dieser Tabelle im Access arbeiten.
    Bei Veränderungen (Events auf dem Form) reagieren und die Änderungen an den Server schicken.
    Beim verlassen des Forms die Tabelle wieder leeren.

    Aber einfacher währe eine ODBC-Verknüpfung....
     
  5. bowie1304

    bowie1304 Grünschnabel

    So sah die Ursprüngliche Verision unter Access aus. Mittlerweile hat diese Access DB ein unkontroliierbares Eigenleben entwickelt, viele kopien unterwegs keine Konsistenz in den Daten und jede kopie gibt unterschiedliche Informationen zurück. (RiesenProblem). Die Hauptdaten werden nun auf den SQL-Server importiert und von dort werden auch die Antworten zur Verfügung gestellt. Ich weiß man kann links zu solchen Datenbanken bauen. DIes funktioniert aber aus Performance gründen nicht mehr. Für eine kleien Abfrage gehen bis zu 10 sekunden ins Land bis die Antwort kommt. Access ist ausserdem nicht dazu geeignet, so unsere Erfahrung in einem Netzwerk mit Multiuser-Access benutzt zu werden. Je mehr User aud Access rumwurschteln ums Langsamer wird das Teil und das geht nicht.
    Ich weiss das das Arbeiten mit Recordssets sehr komplex ist aber es ist um einen großen Fakto Schneller.
     
  6. Yaslaw

    Yaslaw n/a Moderator

    Aber was spricht gegen die ODBC-Verknüpfung anstelle des Recordsets?

    Acces ist dazu gemacht, auf einer "Tabelle" (kann auch ein verküpfte View eines Servers sein) die Formulare aufzubauen.
     
  7. bowie1304

    bowie1304 Grünschnabel

    Geht leider nicht da vorgabe vom Kunden
     
  8. Yaslaw

    Yaslaw n/a Moderator

    Pech.
    Ist es ein DAO oder ein ADODB Recordset? Beim ersteren kannst du ev das Recordset direkt an ein Form hängen.

    Hab das folgende getestet. Funktioniert.
    Code (Text):
    1. Private Sub Form_Load()
    2.     Dim rs As DAO.Recordset
    3.     Set rs = CurrentDb.openRecordset("select * from t_ch")
    4.     Set Me.Recordset = rs
    5. End Sub
     
  9. bowie1304

    bowie1304 Grünschnabel

    Ist ein ADO record(set), wenn ich das so sehe müsste es mit ADO ähnlich funktionieren
     
  10. Yaslaw

    Yaslaw n/a Moderator

    Weiss nicht. Versuchs einfach mal.
     
  11. bowie1304

    bowie1304 Grünschnabel

    Ado geht leider nicht, werde es anderst Probieren. Danke für deine Mühe
     
Die Seite wird geladen...