Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1828to1832
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Vorwärts schrittweise durch DB springen

Vorwärts schrittweise durch DB springen
30.04.2021 21:39:38
Ronald
Grüßt Euch alle!
Ich hätte gerne gewußt, wie ich die Anzahl Datensätze einer Tabelle in einer MDB erfragen kann.
Zugriff auf die DB erfolgt so:

cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Test\_Privat\_Softwerk\Projekt Büro Softwerk\Softwerk ERP\SOFTWERK_ERP.mdb;Persist Security Info=False;"
Eigentlich gehts darum, daß per Pfeiltasten links (rückwärts) und rechts (vorwärts) durch die einzelnen Datensätze der DB springen können möchte.
Nur merkt er es noch nicht, wenn er rückwärts springend beim letzten angekommen ist. Denn dann sollte er eigentlich den Pfeil-rechts-Button deaktivieren
und nur noch den Pfeil-Links-Button aktiv halten. Wenn man rückwärts springt, soll dasselbe passieren, nur umgedreht.
Hat jemand hierfür einen Tip für mich? Wäre echt toll.
Danke und Gruß
Ronald

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: willst Du das mit Excel machen?
01.05.2021 11:16:44
Jowe
falls dem so ist, zeig doch die Excel-Arbeitsmappe.
Gruß
Jochen
AW: willst Du das mit Excel machen?
03.05.2021 08:42:02
Ronald
Guten Morgen
Ja, ich möchte das mit Excel machen. Aber ich kann die Arbeitsmappe leider nicht teilen, da diese zu umfangreich ist.
Mir reicht eigentlich eine Auskunft, wie man dies hier anwendet...

SELECT count(*) As Anzahl FROM TabellenName WHERE ...
...sodaß man nachher die Anzahl aller Datensätze in einer Variable hat und sich beispielsweise mit einer MsgBox
anzeigen lassen kann. Es wäre auch toll zu wissen, wie man auf die gleiche Weise zählen kann, außer die Datensätze,
die in Spalte mit der Überschrift "inaktiv" als Wert eine 1 drin haben.
Danke im Voraus.
Gruß Ronald
Anzeige
"Recordset"
03.05.2021 11:01:44
Yal
Hallo Ronald,
es gibt 2 Variante von Recordset. Wenn Du bereits mit einer "Connection" arbeitest, dann bist Du eher mit dem ADODB unterwegs (anstatt DAO).
Siehe https://www.online-excel.de/excel/singsel_vba.php?f=135
Der Bewegung innerhalb eines Recordsets wird mit
rs.MoveNext / rs.MovePrevious
erreicht.
https://docs.microsoft.com/de-de/sql/ado/reference/ado-api/movefirst-movelast-movenext-and-moveprevious-methods-example-vb?view=sql-server-ver15
VG
Yal
Anzeige
AW: "Recordset"
03.05.2021 11:10:44
JoWE
Siehe dazu auch Google-Recherche: VBA adodb recordset anzahl datensätze
AW: "Recordset"
03.05.2021 15:43:00
Ronald
Wenn ich vorwärts drücke, springt es zum nächsten Datensatz und zeigt diesen an. Soweit so gut. Aber während dieser angezeigt wird, weiß das Programm noch nicht, daß dies der letzte Datensatz ist. Denn ansonsten müßte der Button für vorwärts inaktiv werden, wenn keine weiteren Datensätze in der DB sind. Das ist mein Qelltext. Laut diesem würde nach dem Anzeigen des aktuellen (und auch letzten Datensatzes) nochmals eine Kundennummer vorbereitet, sodaß
die darauffolgende geladen werden kann. Aber es kommt keine. Wie kann ich der Software das begreiflich machen, während der aktuelle und letzte DS angezeigt wird? Beziehungsweise wie müßte ich meinen Code abändern, daß es paßt?


Public Sub Privatkundendaten_aus_DB_holen()
Dim i As Integer
Dim strQuery As String
Call Felder_Leeren_KV
cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\waelty\Downloads\_Privat\_Softwerk\Projekt Büro Softwerk\Softwerk ERP\SOFTWERK_ERP.mdb;Persist Security Info=False;"
'Set rs = cn.Execute("SELECT * FROM tKunden")
strQuery = "SELECT * FROM tKunden WHERE fKdNummer=" & "'" & strAusgewaehlterDatensatz_KV & "'"
Set rs = cn.Execute(strQuery)
i = 1
Do While Not rs.EOF
frmMain.txtKundennummer_KV.Value = rs.Fields("fKdNummer").Value
frmMain.cboStatus_KV.Value = rs.Fields("fKdStatus").Value
frmMain.txtKundeSeit_KV.Value = rs.Fields("fKdKundeSeit").Value
frmMain.txtEintragsdatum_KV.Value = rs.Fields("fKdEintragsdatum").Value
frmMain.txtAenderungsdatum_KV.Value = rs.Fields("fKdAenderungsdatum").Value
frmMain.txtDomain_KV.Value = rs.Fields("fKdDomain").Value
frmMain.cboKategorie_KV.Value = rs.Fields("fKdKategorie").Value
frmMain.txtOrt_KV.Value = rs.Fields("fKdOrt").Value
frmMain.txtAnrede_KV.Value = rs.Fields("fKdAnrede").Value
frmMain.txtNachname_KV.Value = rs.Fields("fKdNachname").Value
frmMain.txtVorname_KV.Value = rs.Fields("fKdVorname").Value
frmMain.txtVorname2_KV.Value = rs.Fields("fKdVorname2").Value
rs.MoveNext
i = i + 1
Loop
cn.Close
Call KDNummer_vorbereiten
End Sub

Anzeige
AW: "Recordset"
05.05.2021 22:31:49
Ronald
Ich habe einen Datensatz ausgewählt. Dieser wird angezeigt und nun klicke ich auf "vorwärts", damit es mir den nächsten Datensatz in dieser Tabelle anzeigt.
Dafür wird der nachfolgende Code abgearbeitet. Ich weiß nicht, wo ich Deinen Code von "Private Sub NachVorn()" implementieren soll, damit es klappt.
Einfach im Code des Buttons für Vorwärts, das funktioniert nicht. Da kommt die Meldung "Laufzeitfehler '3704': Der Vorgang ist für ein geschlossenes Objekt
nicht zugelassen." Ich nehme an, weil zu diesem Zeitpunkt kein Zugang zur Datenbank offen ist. Connection closed. Vielleicht liegts daran, daß ich jedes
Mal die Verbindung wieder zu mache. Kann die auch offen bleiben? Wie sähe dann der Quellcode aus? Leidet da nicht die Performance drunter?
Hier also nun der erwähnte komplette Ablauf:

Private Sub cmdDSVorwaerts_KV_Click()
Call mod_1_Kundenverwaltung.Datensatz_vorwaerts_springen_KV 'springt zum nächsten Datensatz in der Tabelle
End Sub
Public Sub Datensatz_vorwaerts_springen_KV()
Dim intKDNr As Integer
Call KDNummer_vorbereiten
intKDNr = CInt(strKundennummerVorbereitet)
intKDNr = intKDNr + 1
strKundennummerVorbereitet = CStr(intKDNr)
Call Kundennummer_Nullen_auffüllen_etc
strAusgewaehlterDatensatz_KV = strKundennummerVorbereitet
Call Auswahl_fuer_DS_springen
End Sub
Private Sub KDNummer_vorbereiten()
Dim intKundennummer As Integer
If frmMain.txtKundennummer_KV.Text = "" Then
frmMain.cmdDSRueckwaerts_KV.Enabled = True 'false
frmMain.cmdDSVorwaerts_KV.Enabled = False
Else
frmMain.cmdDSRueckwaerts_KV.Enabled = True
frmMain.cmdDSVorwaerts_KV.Enabled = True
strKundennummerVorbereitet = Right(frmMain.txtKundennummer_KV.Text, 3)
strKundennummerVorbereitet = Format$(strKundennummerVorbereitet, "#")
End If
End Sub
Private Sub Auswahl_fuer_DS_springen()
If frmMain.cboKategorie_KV.Value = "Geschäftskunde" Then
Call Geschaeftskundendaten_aus_DB_holen
ElseIf frmMain.cboKategorie_KV.Value = "Privatkunde" Then
Call Privatkundendaten_aus_DB_holen
End If
End Sub
Public Sub Privatkundendaten_aus_DB_holen()
Dim i As Integer
Dim strQuery As String
Call Felder_Leeren_KV
cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\waelty\Downloads\_Privat\_Holzzzwerk\Projekt Büro Holzzzwerk\Holzzzwerk ERP\HOLZZZWERK_ERP.mdb;Persist Security Info=False;"
'Set rs = cn.Execute("SELECT * FROM tKunden")
strQuery = "SELECT * FROM tKunden WHERE fKdNummer=" & "'" & strAusgewaehlterDatensatz_KV & "'"
Set rs = cn.Execute(strQuery)
i = 1
Do While Not rs.EOF
frmMain.txtKundennummer_KV.Value = rs.Fields("fKdNummer").Value
frmMain.cboStatus_KV.Value = rs.Fields("fKdStatus").Value
frmMain.txtKundeSeit_KV.Value = rs.Fields("fKdKundeSeit").Value
frmMain.txtEintragsdatum_KV.Value = rs.Fields("fKdEintragsdatum").Value
frmMain.txtAenderungsdatum_KV.Value = rs.Fields("fKdAenderungsdatum").Value
frmMain.txtDomain_KV.Value = rs.Fields("fKdDomain").Value
frmMain.cboKategorie_KV.Value = rs.Fields("fKdKategorie").Value
frmMain.txtOrt_KV.Value = rs.Fields("fKdOrt").Value
frmMain.txtAnrede_KV.Value = rs.Fields("fKdAnrede").Value
frmMain.txtNachname_KV.Value = rs.Fields("fKdNachname").Value
frmMain.txtVorname_KV.Value = rs.Fields("fKdVorname").Value
frmMain.txtVorname2_KV.Value = rs.Fields("fKdVorname2").Value
If rs.EOF Then
frmMain.cmdDSVorwaerts_KV.Enabled = False
ElseIf rs.BOF Then
frmMain.cmdDSRueckwaerts_KV.Enabled = False
Else
frmMain.cmdDSVorwaerts_KV.Enabled = True
frmMain.cmdDSRueckwaerts_KV.Enabled = True
End If
rs.MoveNext
i = i + 1
Loop
cn.Close
Call KDNummer_vorbereiten
End Sub
Public Sub Datensatz_vorwaerts_springen_KV()
Dim intKDNr As Integer
Call KDNummer_vorbereiten
intKDNr = CInt(strKundennummerVorbereitet)
intKDNr = intKDNr + 1
strKundennummerVorbereitet = CStr(intKDNr)
Call Kundennummer_Nullen_auffüllen_etc
strAusgewaehlterDatensatz_KV = strKundennummerVorbereitet
Call Auswahl_fuer_DS_springen
End Sub
Public Sub Datensatz_rueckwaerts_springen_KV()
Dim intKDNr As Integer
Call KDNummer_vorbereiten
intKDNr = CInt(strKundennummerVorbereitet)
intKDNr = intKDNr - 1
If intKDNr = 0 Then
frmMain.cmdDSRueckwaerts_KV.Enabled = False
Else
frmMain.cmdDSRueckwaerts_KV.Enabled = True
strKundennummerVorbereitet = CStr(intKDNr)
Call Kundennummer_Nullen_auffüllen_etc
strAusgewaehlterDatensatz_KV = strKundennummerVorbereitet
Call Auswahl_fuer_DS_springen
End If
End Sub
Ich kann auch mal das komplette Projekt veröffentlichen. Aber das wird kompliziert. Ich weiß auch nicht, wie ich das hier hochladen kann. Wie genau der
Ablauf dafür ist.
Danke im Voraus.
Gruß Ronald

Anzeige
AW: "Recordset"
06.05.2021 08:49:47
Yal
hallo Ronald,
manchmal gibt nur Code-Schnipsel, um eine Idee zu überbringen. Mein Coding ist nicht selbsttragend.
Das Problem in deinem Vorgehensweise ist, dass die gesamte Behandlung der Datenabfrage innerhalb von "Privatkundendaten_aus_DB_holen": dort ist das Open und das Close. Eine Interaktion von ausserhalb ist daher nicht möglich: Objekt geschlossen.
Du muss unterteilen:
_ eine Initialisierung, die die DB-Verbindung einrichtet und den Recordset (rs) holt
_ verschiedene Navigationselement, die den rs hoch- und runtergehen. Das sind die "nachOben", "nachUnten"-Schaltfläche
_ einen Abschluss, das den rs und die DB-Verbindung schliesst
Ich habe keine Lösung parat, ich kenne die Codings nicht auswendig. Dafür habe ich die passende Seitenmarkierung in meinem "Excel programmieren 2012" von Michael Kofler immer im Handweite. Hilft dir aber nicht. Da muss Du nur die passende Suchbegriff merken: vba ado recordset
u.a.:
https://docs.microsoft.com/de-de/sql/ado/guide/appendixes/using-ado-with-microsoft-visual-basic?view=sql-server-ver15
Viel Erfolg
Yal
Anzeige
ADO connection ganze Zeit offen?
06.05.2021 09:00:05
Ronald
Danke schön!
Was würde passieren, wenn ich die Datenbankverbindung nicht schließe? Dann hätte ich es mit dem Zugriff etc. einfacher. Aber... wann schließe ich sie dann wieder? Wär das schlimm, wenn ich sie erst schließe, wenn ich das Programm zumache? Oder habe ich dann Performanceprobleme?
AW: ADO connection ganze Zeit offen?
06.05.2021 09:29:41
Yal
Hallo Ronald,
theoretisch klappt es mit Access schon gut, einige Verbindungen gleichzeit offen zu haben. Schwierigkeit hast Du erst, wenn Du durch den Recordset eine Reservierung hast, zum Beispiel für das Zurückschreiben. Aber ist in deinem Fall nicht so.
Spätestens, wenn die Datei geschlossen wird, besteht die Verbindung nicht mehr. Sauberer ist es zwar,die Verbindung gezielt zu schliessen, z.B. mit Workbook_Close (Ereignis in "DieseArbeitsmappe"), aber da kein Datenverlustrisiko, weil kein Rückschreiben, ist es unkritisch.
VG
Yal
Anzeige
Vorwärtsschritt durch ADO DB
06.05.2021 23:24:41
Ronald
Ich habe es jetzt angepaßt, aber es funktioniert noch immer nicht. Und es ist mir noch nicht klar, was ich falsch mache:

Call a_DB_Verbindung_aufbauen
Call b_SQL_Abfrage_PrivatKd
Call c_Handling_der_Datensätze
Public Sub a_DB_Verbindung_aufbauen()
cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Softwerk ERP\SoftWERK_ERP.mdb;Persist Security Info=False;"
End Sub
Public Sub b_SQL_Abfrage_PrivatKd()
strQuery = "SELECT * FROM tKunden WHERE fKdNummer=" & "'" & strAusgewaehlterDatensatz_KV & "'"
Set rs = cn.Execute(strQuery)
End Sub
Public Sub c_Handling_der_Datensätze()
Dim i As Integer
i = 1
Do While Not rs.EOF
frmMain.txtKundennummer_KV.Value = rs.Fields("fKdNummer").Value
frmMain.cboStatus_KV.Value = rs.Fields("fKdStatus").Value
frmMain.txtKundeSeit_KV.Value = rs.Fields("fKdKundeSeit").Value
frmMain.txtEintragsdatum_KV.Value = rs.Fields("fKdEintragsdatum").Value
frmMain.txtAenderungsdatum_KV.Value = rs.Fields("fKdAenderungsdatum").Value
frmMain.txtDomain_KV.Value = rs.Fields("fKdDomain").Value
frmMain.cboKategorie_KV.Value = rs.Fields("fKdKategorie").Value
frmMain.txtOrt_KV.Value = rs.Fields("fKdOrt").Value
frmMain.txtAnrede_KV.Value = rs.Fields("fKdAnrede").Value
frmMain.txtNachname_KV.Value = rs.Fields("fKdNachname").Value
frmMain.txtVorname_KV.Value = rs.Fields("fKdVorname").Value
frmMain.txtVorname2_KV.Value = rs.Fields("fKdVorname2").Value
rs.MoveNext
i = i + 1
Loop
End Sub
'Jetzt noch der Quellcode für die Buttons Vorwärts und Rückwärts:
Private Sub cmdDSVorwaerts_KV_Click()
If Not rs.EOF Then
rs.MoveNext
End If
End Sub
Private Sub cmdDSRueckwaerts_KV_Click()
If Not rs.BOF Then
rs.MovePrevious
End If
End Sub
Ich lasse also einen Datensatz anzeigen, den in der Mitte, damit ich nach vorne und nach hinten Platz zum Durchschalten habe. Es sind ja nur
drei Testeinträge drin. Wenn ich nach dem Laden des mittleren Datensatzes nun auf Vorwärts klicke, passiert gar nichts. Drücke ich auf Rückwärts,
bekomme ich eine Fehlermeldung: Lautzeitfehler '3219' Der Vorgang ist in diesem Zusammenhang nicht zugelassen."
Nun wäre es schön, wenn jemand von Euch mir ein kleines Beispielprogramm machen könnte, damit ich das Grundprinzip begreife.
Einfach ca. 5 Datensätze in eine kleine MDB, die paar Einträge in Textboxen anzeigen lassen und dann per Vorwärtsklick und Rückwärtsklick zeigen, wie genau das funktioniert. Ich habe auch im Internet nichts gefunden. Gleichzeitig habe ich das Gefühl, daß es ganz einfach sein wird, wenn man es erstmal weiß.
Vielen Dank im Voraus.
Gruß Ronald
Anzeige
AW: Vorwärtsschritt durch ADO DB
07.05.2021 20:18:36
JoWE
Hallo Roland,
interessante Geschichte, hast Du mal eine Arbeitsmappe hochgeladen? Der Code weist ja auf eine Userform hin. Um das/die Makro/s im Zusammenspiel mit der Userform und den darin enthaltenen Elementen mal zu testen, wäre die komplette Arbeitsmappe schon hilfreich.
Gruß
Jochen
AW: Vorwärtsschritt durch ADO DB
07.05.2021 20:59:35
Ronald
Grüß Dich Jochen
So, ich habe nun mal die Arbeitsmappe hochgeladen und zwar das ganze Projekt.

https://www.herber.de/bbs/user/146064.zip
Daher folgt hier eine kleine Erklärung:
- Als Erstes muß der Pfad zur Datenbank angepaßt werden, da durchs Zippen der hinterlegte Pfad nicht mehr stimmt.
- frmMain starten
- bei ComboBox "Kategorie" Privatkunde Mitte links auswählen
- dann auf den Button "Bestehender Kunde" unten links klicken
--> Hier kommen alle Datensätze zur Voransicht zwecks Auswahl. Hier ist mir schonmal nicht klar, wieso sie nicht in der Reihenfolge kommen.
- Hier also einen Datensatz auswählen und auf den Button Auswahl "Übernehmen und Daten laden" klicken
--> Jetzt wird wieder das Hauptformular mit dem ausgewählten Datensatz ausgewählt.
Aber hier kann ich nun nicht vorwärts oder rückwärts springen. Ich gehe mal davon aus, daß es nur etwas Triviales ist, daß es nicht geht.
Etwas, was ich aus Unwissenheit nicht implementiert habe.
Wenn Du diesen Ablauf mal durch debugst (mit F8), wirst Du ja sehen, welche Prozeduren in Benutzung sind. Ein Paar Leichen sind leider auch darunter.
Und es sind auch sonst noch ein paar kleine Bugs drin, wie Du sehen wirst...
Danke im Voraus fürs Anschauen und ein paar konstruktive Vorschläge.
Gruß Ronald
Anzeige
AW: Vorwärtsschritt durch ADO DB
08.05.2021 11:58:40
JoWE
warum so kompliziert?
Mit einem Makro beim Start der Userform könntest Du ein temporäres Arbeitsblatt erstellen, z.B. AlleKunden.
In die Tabelle würdest Du dann wieder mittels Makro alle Kundendaten aus der Datenbank einlesen.
In Deiner Userform könntest Du dann mittels der Pfeiltasten ohne große Klimmzüge rauf und runterspringen und die jeweiligen Daten in die Userform laden.
Evtl. wäre das sogar mittels einer Listbox in der Userform sogar noch komfortabler zu regeln?
Beim Beenden der Anwendung wäre dann die temporäre Tabelle wieder zu löschen.
Gruß
Jochen
AW: Vorwärtsschritt durch ADO DB
09.05.2021 20:55:36
Ronald
Warum so kompliziert? Ich glaube, daß ich nur noch das hin- und herschalten benötige und kann dann das Programm damit fertig machen, weil ich den Rest
bereits habe.
Aber um auf Deine Frage zu antworten: Ich habe bereits ein Excel in Benutzung, welches pro Zeile einen Datensatz hat und etwas über 30 Spalten und all
diese werden in einem Formular angezeigt, mittels hoch- und runter klicken. Und dies ist nicht wahnsinnig performant. Ich habe genau so in Benutzung,
wie ich hier beschrieben habe, also ohne Access-DB. Und da ists schon nicht performant. Es wird also zusätzlich mit der MDB auch nicht besser werden.
Aus diesem Grund und weil ich meine Access-Kenntnisse aufbauen und erweitern wollte, habe ich diesen Weg gewählt.
Daher benötige ich eigentlich nur noch den Tip, wie ich vorwärts und rückwärts schalten kann (Pfeil nach links und Pfeil nach rechts). Und zwar so, daß
er beim Nach-rechts-schalten merkt, wenn der letzte Datensatz erreicht ist und dann entsprechend den Button "Pfeil nach rechts" enabled=false setzt.
Und dasselbe beim Nach-links-schalten mit dem ersten Datensatz.
Ich wäre sehr froh, wenn ich hierfür einen Praxistip bekommen könnte.
Gruß Ronald
Anzeige
AW: Vorwärtsschritt durch ADO DB
10.05.2021 17:18:36
Ronald
Ich muß das Thema nochmal aufrühren, da ich glaube, daß ich ein Verständnisproblem habe. Wenn dies gelöst ist, ist wahrscheinlich alles gelöst.
Nochmal zum Aufwärmen: ich lade also aus der DB wie folgt:

Call a_DB_Verbindung_aufbauen
Call b_SQL_Abfrage_PrivatKd
Call c_Handling_der_Datensätze
...

Public Sub a_DB_Verbindung_aufbauen()
cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Softwerk ERP\SoftWERK_ERP.mdb;Persist Security Info=False;"
End Sub
...

Public Sub b_SQL_Abfrage_PrivatKd()
strQuery = "SELECT * FROM tKunden WHERE fKdNummer=" & "'" & strAusgewaehlterDatensatz_KV & "'"
Set rs = cn.Execute(strQuery)
End Sub
...

Public Sub c_Handling_der_Datensätze()
Dim i As Integer
i = 1
Do While Not rs.EOF
frmMain.txtKundennummer_KV.Value = rs.Fields("fKdNummer").Value
frmMain.cboStatus_KV.Value = rs.Fields("fKdStatus").Value
frmMain.txtKundeSeit_KV.Value = rs.Fields("fKdKundeSeit").Value
frmMain.txtEintragsdatum_KV.Value = rs.Fields("fKdEintragsdatum").Value
frmMain.txtAenderungsdatum_KV.Value = rs.Fields("fKdAenderungsdatum").Value
frmMain.txtDomain_KV.Value = rs.Fields("fKdDomain").Value
frmMain.cboKategorie_KV.Value = rs.Fields("fKdKategorie").Value
frmMain.txtOrt_KV.Value = rs.Fields("fKdOrt").Value
frmMain.txtAnrede_KV.Value = rs.Fields("fKdAnrede").Value
frmMain.txtNachname_KV.Value = rs.Fields("fKdNachname").Value
frmMain.txtVorname_KV.Value = rs.Fields("fKdVorname").Value
frmMain.txtVorname2_KV.Value = rs.Fields("fKdVorname2").Value
rs.MoveNext
i = i + 1
Loop
End Sub
Und jetzt noch der Code fürs Vorwärts- und Rückwärtsschalten:

Private Sub cmdDSVorwaerts_KV_Click()
If Not rs.EOF Then
rs.MoveNext
End If
End Sub
Private Sub cmdDSRueckwaerts_KV_Click()
If Not rs.BOF Then
rs.MovePrevious
End If
End Sub
Ich habe das Gefühl, daß es zwar beispielsweise rückwärts springt, aber nichts anzeigt. Also dachte ich, ich müsse nochmals neu zuweisen.
Das sähe dann so aus:

Private Sub cmdDSVorwaerts_KV_Click()
'Call mod_1_Kundenverwaltung.Datensatz_vorwaerts_springen_KV
If Not rs.EOF Then
rs.MoveNext
frmMain.txtKundennummer_KV.Value = rs.Fields("fKdNummer").Value
frmMain.cboStatus_KV.Value = rs.Fields("fKdStatus").Value
frmMain.txtKundeSeit_KV.Value = rs.Fields("fKdKundeSeit").Value
frmMain.txtEintragsdatum_KV.Value = rs.Fields("fKdEintragsdatum").Value
frmMain.txtAenderungsdatum_KV.Value = rs.Fields("fKdAenderungsdatum").Value
frmMain.txtDomain_KV.Value = rs.Fields("fKdDomain").Value
frmMain.cboKategorie_KV.Value = rs.Fields("fKdKategorie").Value
frmMain.txtOrt_KV.Value = rs.Fields("fKdOrt").Value
frmMain.txtAnrede_KV.Value = rs.Fields("fKdAnrede").Value
frmMain.txtNachname_KV.Value = rs.Fields("fKdNachname").Value
frmMain.txtVorname_KV.Value = rs.Fields("fKdVorname").Value
frmMain.txtVorname2_KV.Value = rs.Fields("fKdVorname2").Value
ElseIf rs.EOF = True Then
MsgBox "EOF erreicht"
End If
End Sub
Er meckert zwar nicht, aber es zeigt auch keinen neuen Datensatz an. Also habe ich das Gefühl, etwas grundsätzlich falsch gemacht zu haben,
auf was ich nicht komme. Wie Schuppen vor den Augen.
Wäre schön, wenn mir hierbei jemand helfen könnte.
Danke im Voraus.
Gruß Ronald

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige