vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Satzzeiger 
Autor: Ueli
Datum: 23.05.18 23:54

Guten Abend

VB6.0 pro, XP pro Servicepack3, Office XP

In meiner Anwendung habe ich folgenden Aufbau.

Ich verwende eine Access-Datenbank mit einer Tabelle "Zeiterfassung".
Darin sind die Stempelungen von allen Angestellten gespeichert.

In einem Formular "Editieren" kann ich nun die einzelnen Personalnummer-Zeitpackete anschauen.
Ich habe nun z.B von der Personalnummer 1000 ein Zeitpacket von 12 Datensätzen.
Mit den Buttons "First", "Previous", "Next" und "Last" kann ich nun einwandfrei navigieren.
Wenn ich nun aber mit Code z.B. MoveFirst eingebe dann springt der Zeiger kurz auf 1 um dann sofort
auf -2 zu wechseln.
Ich bin am Anschlag und bedanke mich für jeden Rat.
Irgendwo mache ich einen Fehler finde leider nicht wo.
Vielen Dank für Ratschläge.
Gruss vom Bodensee
Ueli Grüninger
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Satzzeiger 
Autor: Franki
Datum: 24.05.18 03:07

Hallo Ueli,

deine Angaben sind leider etwas dürftig, da wir erstens nicht wissen wie genau deine DB aufgebaut ist (Feldtypen) und was du genau im Code machst.

Arbeitest du innerhalb von VB6 mit DAO oder mit ADO?
Wie sieht der Code des Formulars genau aus mit dem du die Daten der jeweiligen Personalnummer füllst? (Nach was ist die SQL Abfrage sortiert?)

Wo genau über welches Ereignis möchtest du im Code denn navigieren?

Zeiterfassung ist eigentlich relativ einfach, aber der Teufel steckt im Detail wie das Sprichwort so schön sagt...

Etwas mehr Infos wären hilfreich damit man konkret antworten kann.

Gruß
Frank
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Satzzeiger 
Autor: Souffleurlos
Datum: 27.05.18 11:18

Hallo,

wenn Du einen Readonly-Recordset hast können MoveFirst und MoveLast nicht verwendet werden. Bilde einen Recordset vom Typ: Dynamic.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Satzzeiger 
Autor: Ueli
Datum: 27.05.18 11:49

Hallo Souffleurlos
Ich bedanke mich für Deinen Tip. Scheint zu funktionieren.
Leider bekommt man in den Foren zu oft Antworten, welche eigentlich eine Gegenfrage sind.
Das eigene "Oberstübli" anzustrengen ist oft zuviel verlangt.
Nochmals vielen Dank für den Tip und Grüsse vom Nodensee.
Ueli Grüninger
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Satzzeiger 
Autor: Ueli
Datum: 27.05.18 11:50

Es ist natürlich der schöne Bodensee gemeint. (Schreibfehler)
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Satzzeiger 
Autor: Franki
Datum: 29.05.18 02:27

Hallo,

na ja die Gehirnzellen des "Oberstübli" sollten aber auch bei der Fragestellung etwas aktiviert werden. Wenn dem nicht so ist, dann kommen halt Gegenfragen um das Problem konkretisieren zu können.

Aber wie man an deinem Beispiel sieht kann das auch ohne funktionieren.

Du hast die Antwort bekommen, du schreibst, dass es scheinbar funktioniert. Aber die Antwort ist definitiv falsch gewesen, denn ReadOnly hat rein gar nichts damit zu tun wie man in einem ADO Recordset navigieren kann. Es besagt nur, dass man es lesen kann aber nicht beschreiben kann oder neue Datensätze hinzufügen kann.

Das Thema ist etwas umfangreicher es gib LockType, und CursorType z.B. mit jeweils eigenen Paramatern bzw. Konstanten. Dynamic ist nur eine davon, per Zufall hat es funktioniert.

Also langer Rede kurzer Sinn, manchmal sind Gegenfragen sinnvoll, manchmal sind konkrete Problembeschreibungen sinnvoll, manchmal tifft die Antwort per Zufall genau die Lösung. Aber wir programmieren ja und spielen nicht Lotto...

Gruß
Frank
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Satzzeiger 
Autor: Souffleurlos
Datum: 29.05.18 21:26

Hallo Franki,
mit einem statischen Cursor kannst Du weder in DAO noch ADO in den Datensätzen rückwärts navigieren. MoveFirst ist so eine Methode, die rückwärts navigiert. Deswegen entsteht der Resultwert -2 (BOF), weil eine dynamische Cursorverwaltung fehlt, die beide Richtungen toleriert. Will man das, so ist explicit der dynamische Cursor in den Öffnungsparametern der Open-Methode anzugeben. Wenn man das nicht tut, ist automatisch der schnellere statische Abwärtscursor eingestellt.
Das Problem ist: Dieser Prarameter darf nicht optional sein, sondern muss definitiv vom Entwickler gesetzt werden sollen. Aber wir schreiben diese Objektmodelle nicht - oder?

Beitrag wurde zuletzt am 29.05.18 um 21:44:01 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Satzzeiger 
Autor: Franki
Datum: 30.05.18 02:55

Hallo,
siehst du, noch mehr Details die mit dem Problem zusammen gehangen haben könnten. Und du hast recht, hier ist Fachwissen gefragt um ein konkretes Problem lösen zu können.

Aber Hut ab, du hast sofort erkannt wo das Problem lag, ich nicht.
Aber grundsätzlich ist das nich immer so einfach, den DAO und ADO sind halt nicht identisch, die verwendeten Datenbanken auch nicht usw. usw. Deswegen stelle ich halt oft Rückfragen um das Problem eingrenzen zu können.

Gruß
Frank
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Satzzeiger 
Autor: Ueli
Datum: 30.05.18 07:15

Hallo Franki
Bei jedem, der sich an der Problemlösung beteiligt hat bedanke ich mich.
Das Problem ist im Moment gelöst.
Gruss vom schönen Bodensee
Ueli Grüninger
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel