Fragen zu VB 6.0

Hallo zusammen

Zwei Fragen zu VB 6.0 (SP3):

Ich habe den folgenden Code:

Dim SQL As String
Dim cn As New ADODB.Connection
Dim myRecordset As New ADODB.Recordset

 Set cn = New ADODB.Connection
 cn.Open "Data Source=User1"
 Set myRecordset = New ADODB.Recordset
 SQL = "SELECT \* FROM [dbo\_Products] WHERE(CategoryID=7)"
 myRecordset.Open SQL, cn

 Me.List1.DataSource = myRecordset

… und möchte das Recordset nun an ein List- oder Grid-Control binden. Kann mir jemand sagen, wieso dass nicht funktioniert?

Zweite Frage:

Wenn ich in VB auf einem Formular verschiedene TextBoxen plaziert habe, wie erreiche ich dann, dass der Benutzer mit der -Taste von Feld zu Feld springen kann?

TIA & Gruss
Martin

Me.List1.DataSource = myRecordset

Hi,
ich glaube, der Fehler steckt im Punkt, der eine Eigenschaft symbolisiert. List1 ist aber ein Feld. Eigentlich sollte es mit Ausrufezeichen klappen:

Me!List1.DataSource = myRecordset

Gruß,
Claudio

Lieber Claudio

der eine Eigenschaft symbolisiert. List1
ist aber ein Feld. Eigentlich sollte es
mit Ausrufezeichen klappen:

Me!List1.DataSource = myRecordset

Geht leider nicht. List1 ist ein Listen-Steuerelement. Es könnte aber auch ein Grid oder so sein.

Gruss
Martin

Tag.
Zu 1) Soweit ich weiss, kann man eine Listbox nicht an eine Datenquelle binden. Bei der Tabelle gibt´s glaub ich ein extra Steuerelement namens DBgrid.

Zu 2)
Du mußt einfach nur die TabIndex-Eigenschaften der Steuerelemente anpassen. Diese Eigenschaft wird von VB automatisch in der Reihenfolge der auf der Form abgelegten Steuerelemente festgelegt.
Um die Reihenfolge selbst festzulegen fängst du mit dem SE an, das als LETZTES den Fokus bekommen soll, und gibst ihm eine hohen TabIndex-Wert. Z.B. 100. Dann gehst du von hinten nach vorne: vorletztes SE-> TabIndex = 99; vorvorletztes TabIndex=98 usw.
Du mußt am Ende nicht bei Null ankommen.
Beachte, daß nicht nur Textboxen eine TabIndex-Eigenschaft haben.
Wenn du verhindern willst, daß ein SE den Fokus erhält, mußt du nur seine TabSTOP-Eigenschaft auf False setzen.

Ich hoffe ich konnte dir helfen,
Holli

Salü Martin
Frage1
Du musst beachten, dass es zwei Listbox, bzw. Comboboxcontrol gibt. Das eine mit dem Präfix „DB“, welche als Boundcontrols eingesetzt werden können. Die anderen musst Du via „Additem“ Methode füttern…

Zweite Frage:

Geht nicht direkt, aber so
¨Wenn in der Textbox eine Taste gedrückt wird, wird der Keypressevent ausgelöst. Den übergebenen Wert prüfen ob 13 (=Enter).
Danach mittes Methode „gotfocus“ das gewählte Control (eine andere Textbox) anwählen. Natürlich ist der Sprung „hardcodiert“. Eine Änderung in den Controls auf dem Form kann eine Änderung des Codes bedeuten…

Professioneller wäre es, die Textcontrols zu
indizieren, in der Reihenfolge wie der Workflow definiert ist. Danach den Gotfocus auf den aktuellen Index +1 setzen. Damit bist Du auch bei Formularänderungen dynamisch und kannst den Workflow schneller anpassen.

Betreffend „Enter“ ist noch das Defaultcontrol zu beachten - analog cancel, wenn ESC gedrückt wurde.

Grüsse Peter :wink:

Hallo Peter

Vielen Dank für Deine Antwort.

dem Präfix „DB“, welche als Boundcontrols

Das habe ich grundsätzlich schon verstanden. Aber muss ich wirklich jedesmal ein ADO-Control auf dem Form plazieren und dieses dann abfüllen, damit ich die Daten in einem DB-List-Control anzeigen kann?

Gotfocus auf den aktuellen Index +1
setzen. Damit bist Du auch bei
Formularänderungen dynamisch und kannst

Die Reihenfolge der Controls stimmt aber, mit Tab kann ich mich ohne Probleme durch die Felder bewegen - bloss mit Enter geht es nicht (analog wie in MS-Access-Forms).

Gruss
Martin Bucher, Zürich

Hallo Martin aus Zürich

  1. BoundControl bedingen das Data, bzw. ADO Control

  2. Tab versus Enter
    Wie im vorhergehendne E-Mail beschrieben, kommst Du - IMHO - nicht umhin den Keypress Event des Textcontrols auf eine Entereingabe zu überprüfen und manuell den Sprung zu machen - also kein Access Komfort!

Ev. bietet das RTF-Textcontrol dort mehr?

Für professionelle Entwicklungen gibt es sonst Proficontrols

Grüsse Peter aus Zürich

  • the little BIG City - :wink:)

Lieber Peter

  1. BoundControl bedingen das Data, bzw.
    ADO Control

Gibt es auch Unbound-Controls? Wenn ich mit ASP programmieren, greife ich auch direkt via Active-X auf den Server bzw. Access zu.

Für professionelle Entwicklungen gibt es
sonst Proficontrols

Kannst Du etwas empfehlen?

Grüsse Peter aus Zürich

  • the little BIG City - :wink:)

Ich komme auch aus Zürich :smile:

Gruss
Martin

Gibt es auch Unbound-Controls?

Buchtip:
http://www.oreilly.de/catalog/vbcnut/

Profitextcontrol:
-Hast Du das RTF-Textcontrol gecheckd?

Nein keine direkte Emfpehlung.
Ich orintiere mich an meinem Fachkreis, bzw.
schaue was die BasicPro Leser als die besten Tools des Jahres wählen.
Generell ist das Problem, dass die Codierqualität der OCX stark unterschiedlich ist. Diese C-Hacker, vornehmlich aus Sunny-Californien arbeiten z.T. schluddrig… Sheridan ist so ein Bsp. wo ich mit VB5 schlechte Erfahrungen machte.
APEX hat eine sehr gute Qualität bei seinen Controls
Grüsse Peter :wink: