PDA

Vollständige Version anzeigen : Movenext/moveprevious Hilfe


FI_Simon
11.08.2003, 08:46
Hi Leute, ich hab das Problem, das ich wenn ich diesen code für eine Schalfläche in meine Form schreibe, das er nicht weiterspringt, sonst würde er mir ja das Ergebnis in den Textfeldern anzeigen. Es läuft ohne Fehlermeldung durch, jedoch wird nix neues angezeigt, also immer nur der erste Datensatz der Tabelle. :confused:


Private Sub Vor_Click()
Dim dbs As Database, rst As Recordset, intI As Integer
Dim strAnzahl As String
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("DatenSQL")
rst.MoveNext


Me.LText1 = DLookup("[LTXT1]", "DatenSQL") & DLookup("[LTXT2]", "DatenSQL") & DLookup("[LTXT3]", "DatenSQL") & DLookup("[LTXT4]", "DatenSQL") & DLookup("[LTXT5]", "DatenSQL") & DLookup("[LTXT6]", "DatenSQL") & DLookup("[LTXT7]", "DatenSQL") & DLookup("[LTXT8]", "DatenSQL") & DLookup("[LTXT9]", "DatenSQL")
Me.Txt_TechPl = DLookup("TPLNR", "DatenSQL", "")
Me.Txt_Bezeichnung = DLookup("PLTXT", "DatenSQL", "")
Me.Txt_Planergruppe = DLookup("INGRP", "DatenSQL", "")
Me.Txt_IH = DLookup("INNAM", "DatenSQL", "")
Me.Txt_Arbeitsplatz = DLookup("VARBP", "DatenSQL", "")
Me.Txt_BezeichnungAP = DLookup("VARBT", "DatenSQL", "")
Me.Txt_Meldungsdatum = DLookup("QMDAT", "DatenSQL", "")
Me.Txt_Schadenserkenner = DLookup("ZZI_SCHADERK", "DatenSQL", "")
Me.Txt_Ausfalldauer = DLookup("EAUSZT", "DatenSQL", "")
Me.Txt_Kostenstelle = DLookup("KOSTL", "DatenSQL", "")
End Sub


Wäre nett wenn mir jemand helfen könnt!
Gruß
Simon

racoon0506
11.08.2003, 08:50
Besteht dein Formular nur aus ungebundenen Steuerelementen?
(Also Felder ohne einen Eintrag in Steuerelementinhalt..)

Hondo
11.08.2003, 08:50
Hallo,
es fehlt eine Angabe in dbs.OpenRecordset("DatenSQL").
Richtig sollte es z.B. heissen:
Set rst = dbs.OpenRecordset("DatenSQL", dbOpenDynaset)
Gruß Andreas

strausto
11.08.2003, 08:51
Ein bisschen unverständlich, versuche mal:

Private Sub Vor_Click()

DIM rst As DAO.Recordset
DIM intI As Integer
Dim strAnzahl As String


Set rst = Me.Recordset
rst.MoveNext

FI_Simon
11.08.2003, 09:12
@Racoon
Ja, es besteht nur aus ungebundenen Steuerelementen, es könnte auch sein das der Befehl DLookup immer auf den ersten Datensatz springt?
@Hondo
Leider geht das nicht.
@strausto
Geht leider auch nicht.
Er findet die Methode ".Recordset" nicht

strausto
11.08.2003, 09:22
Ja, es besteht nur aus ungebundenen Steuerelementen, es könnte auch sein das der Befehl DLookup immer auf den ersten Datensatz springt?


Du beziehst Dich ausschließlich auf DatenSQL. Warum bindest Du Dein Form nicht an selbige Tabelle?

FI_Simon
11.08.2003, 09:25
@strausto
Und wie geht das?

strausto
11.08.2003, 09:27
Kein Scherz??


Me.RecordSource=DeineTabelle

FI_Simon
11.08.2003, 09:31
Nee, echt kein Scherz, ich muss mich hier leider mit VBA-Programmierung in Office beschäftigen und da wir in der Ausbildung jeden Scheiß machen außer Office-Programierung, hab ich hier arge Probleme, da ich nur relativ wenige Befehle kenn.
Ich probiers mal eben aus, warte.

FI_Simon
11.08.2003, 09:45
Hi, danke erstmal, aber funktionieren tuts immer noch nicht, wenn ichs so eingebe:


Private Sub Vor_Click()

Dim rst As DAO.Recordset
Dim intI As Integer
Dim strAnzahl As String
Me.RecordSource = "DatenSQL"

Set rst = Me.Recordset
rst.MoveNext



Me.LText1 = DLookup("[LTXT1]", "DatenSQL") & DLookup("[LTXT2]", "DatenSQL") & DLookup("[LTXT3]", "DatenSQL") & DLookup("[LTXT4]", "DatenSQL") & DLookup("[LTXT5]", "DatenSQL") & DLookup("[LTXT6]", "DatenSQL") & DLookup("[LTXT7]", "DatenSQL") & DLookup("[LTXT8]", "DatenSQL") & DLookup("[LTXT9]", "DatenSQL")
Me.Txt_TechPl = DLookup("TPLNR", "DatenSQL", "")
Me.Txt_Bezeichnung = DLookup("PLTXT", "DatenSQL", "")
Me.Txt_Planergruppe = DLookup("INGRP", "DatenSQL", "")
Me.Txt_IH = DLookup("INNAM", "DatenSQL", "")
Me.Txt_Arbeitsplatz = DLookup("VARBP", "DatenSQL", "")
Me.Txt_BezeichnungAP = DLookup("VARBT", "DatenSQL", "")
Me.Txt_Meldungsdatum = DLookup("QMDAT", "DatenSQL", "")
Me.Txt_Schadenserkenner = DLookup("ZZI_SCHADERK", "DatenSQL", "")
Me.Txt_Ausfalldauer = DLookup("EAUSZT", "DatenSQL", "")
Me.Txt_Kostenstelle = DLookup("KOSTL", "DatenSQL", "")
End Sub


Ich hab ja stark die Vermutung, das es irgendwie an der DLookup funktionliegt. Denn ich glaub das Dlookup immer den ersten Datensatz zieht.

In Word hatte ich das mal so gemacht:

Private Sub btn_click()
ADOTab.MoveNext
If ADOTab.EOF = True Then
MsgBox "Sie sind am Ende"
ADOTab.MovePrevious
Else
Txt_Anrede = ADOTab!sex
Txt_VName = ADOTab!VName
Txt_NName = ADOTab!NName
Txt_Strasse = ADOTab!Strasse
Txt_PLZ = ADOTab!PLZ
.....
End Sub



Da ging das aber das war Office XP, hier arbeite ich jetzt aber mit Office 97.

strausto
11.08.2003, 09:57
Lade Deine DB mal hoch!

FI_Simon
11.08.2003, 10:03
Gib mir am besten ne E-Mailadresse, das ist zu groß für das Forum, man darf ja hier nur bis 300000bytes, selbst gepackt ist die 600kb, ungepackt 19MB
Gruß
Simon

strausto
11.08.2003, 10:07
Minimiere die Daten auf wenige DS!

FI_Simon
11.08.2003, 10:31
Hier guck dir das dann an, öffne das Fromular menue und gehe auf das hintere Fenster Meldungen, dort kannst du dann mal nach 58120 suchen, datum und das kombifeld sind nochnicht implementiert.

FI_Simon
11.08.2003, 14:41
Hier ist meine DB, wer vielleicht was weiß, kann ja mal gucken, da strausto irgendwie schon länger nicht mehr da ist.
Nur den rechten Pfeilbutton benutzen, der dann auch für Movenext ist!

Arne Dieckmann
11.08.2003, 14:56
Was Du jetzt genau erreichen willst, ist mir noch nicht klar. Vielleicht solltest Du einfach ein Unterformular verwenden, in dem Du dann die Datensätze aus DatenSQL filtern/durchblättern kannst. Auf jeden Fall ist die Geschichte mit Dlookup nicht empfehlenswert (Performance-Bremse!).

Ein anfangs vielleicht etwas kompliziert wirkendes Beispiel gibt es auch bei Reinhard: Suchen: Suchen / SQL dynamisch erstellen (http://www.kraasch.de/beispiele.htm).

FI_Simon
11.08.2003, 15:09
Also ereichen möchte ich das wenn man beispielsweise im Suchtext 58120 eingibst und daraufhin den suchen button drückt erscheinen unten die Werte und im Hintergrund wird eine Tabelle erstellt, die die gesuchten Datensätze beinhaltet(Zwischenspeichert). Aus dieser Tabelle werden dann mit Dlookup die Textfelder im Formular gefüllt. Mein Problem ist jetzt, das ich mit den 4 Pfeilbuttons mich durch die Tabelle navigieren will und auch die anderen Datensätze sehen will, die auch die selbe Nummer haben. Nur funktioniert das nicht er springt nicht in den zweiten Datensatz. Das ist mein Problem.
Denn der bleibt immer nur beim ersten Datensatz.

Private Sub Vor_Click()

Dim rst As DAO.Recordset
Dim intI As Integer
Dim strAnzahl As String
Me.RecordSource = "DatenSQL"

Set rst = Me.Recordset
rst.MoveNext



Me.LText1 = DLookup("[LTXT1]", "DatenSQL") & DLookup("[LTXT2]", "DatenSQL") & DLookup("[LTXT3]", "DatenSQL") & DLookup("[LTXT4]", "DatenSQL") & DLookup("[LTXT5]", "DatenSQL") & DLookup("[LTXT6]", "DatenSQL") & DLookup("[LTXT7]", "DatenSQL") & DLookup("[LTXT8]", "DatenSQL") & DLookup("[LTXT9]", "DatenSQL")
Me.Txt_TechPl = DLookup("TPLNR", "DatenSQL", "")
Me.Txt_Bezeichnung = DLookup("PLTXT", "DatenSQL", "")
.......
......

Arne Dieckmann
11.08.2003, 15:13
Det hab ick mia jetz auch schon jedacht. ;)

Allerdings wäre ein Unterformular bestimmt die bessere Wahl ...