WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   VB6: Index in Datenbank (http://www.wcm.at/forum/showthread.php?t=232992)

pw 20.01.2009 13:26

VB6: Index in Datenbank
 
Ich habe eine Access-Datenbank mit einem Index "NrTyp" der die Felder "Nr" und "Typ" inkludiert.
Nun möchte ich per SEEK in VB6 eine Suche machen. Wie muss der Suchstring aussehen, damit ein Datensatz gefunden wird?

Beispiel:
Im Feld "Nr" steht als Wert "a826"
Im Feld "Typ" steht als Wert "MKK"
Wenn ich nun sage
DATA1.RECORDSET.SEEK "=","a826MKK"
wird bei mir der Datensatz nicht gefunden!
Wie geht es richtig?

PS: Welches ist das beste VB6 Forum? (egal ob deutsch oder englisch)

wbendl 20.01.2009 19:03

Hi!

Aus einer einzigen Zeile Code kann man keine Aussage zu deinem Problem machen.
Der Schlüssel schaut aber nicht gut aus.

Klar sind für mich nur 2 Dinge, die dir aber nicht gefallen werden.
- Du verwendest DAO. Das ist noch kein Fehler, aber doch diskussionswürdig.
- Du verwendest ein DataControl. Das würde ich als grundsätzlichen Fehler bewerten.

Vielleicht solltest du dein gesamtes Konzept neu überdenken.

PS: Das "beste VB6 Forum" gibt es nicht. Es gibt aber einige Gute.


mfg

WB

pw 21.01.2009 19:10

> Aus einer einzigen Zeile Code kann man keine Aussage zu deinem Problem machen.
> Der Schlüssel schaut aber nicht gut aus.

Warum?

> Klar sind für mich nur 2 Dinge, die dir aber nicht gefallen werden.
> - Du verwendest DAO. Das ist noch kein Fehler, aber doch diskussionswürdig.

Ich weiss. :rolleyes:

> - Du verwendest ein DataControl. Das würde ich als grundsätzlichen Fehler bewerten.

Eigentlich nicht, ich dachte es wäre besser zu erklären.

Der Code:

Global Datenbank As Database
Global Fotos As Recordset

mdbdatei = App.Path + IIf(Right(App.Path, 1) = "\", "", "\") + "FOTO.MDB"
Set Datenbank = OpenDatabase(mdbdatei)
Set Fotos = Datenbank.OpenRecordset("Fotos")
Fotos.Index = "IndexNr" ' der Index setzt sich zusammen aus den Feldern "Typ" und "Nr"
Fotos.MoveLast

Fotos.Seek "=", "D108-33"
' führt NICHT zum Erfolg, wenn im Feld "Typ" der Wert "D" steht und im Feld "Nr" der Wert "108-33".
WARUM? Wie geht es richtig?

> PS: Das "beste VB6 Forum" gibt es nicht. Es gibt aber einige Gute.

Die da wären?

Danke
PW

wbendl 22.01.2009 09:45

Hi!

Ohne DC ist wesentlich besser :-).

Ich gehe jetzt einmal davon aus, daß keine versteckten Fehler existieren. Kann ich hier nicht prüfen.

Fotos.Seek "=", "D", "108-33" ' sollte zum Erfolg führen.

Fotos.MoveLast ' sollte hier nicht notwendig sein.

PS: Such dir welche aus:
http://www.vbarchiv.net/vblinks/index.php

pw 22.01.2009 20:15

Zitat:

Zitat von wbendl (Beitrag 2341183)
Fotos.Seek "=", "D", "108-33" ' sollte zum Erfolg führen.

JA, das wars! Super! VIELEN DANK!
:bier:

wbendl 22.01.2009 21:01

Hi!

Keine Ursache. VB6 und Datenbanken ist mein Spezialgebiet. Allerdings habe ich seit Jahren kein DAO mehr verwendet.

Du solltest den Wechsel zu ADO zumindest in Erwägung ziehen.


mfg

WB


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:45 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag