| |
Suche Visual-Basic CodeDaten ... Textboxen ... und ein Problem... | | | Autor: Capt. Kirk | Datum: 05.12.03 22:10 |
| Hallo Leute,
ich hab ein kleines Problem ...
Ich hab ein Formular mit 1 Combobox (Name), und 2 Textboxen (Ort, PLZ).
Diese 3 Sachen (Name, PLZ, Ort) sind Datenfelder in einer Access-DB.
Die Combobox mit den Namen ist mit folgendem Code befüllt ...
Private Sub Form_Load()
Dim DB As Database
Dim Rs As Recordset
Set DB = DBEngine.OpenDatabase("c:\daten.mdb")
Set Rs = DB.OpenRecordset("daten")
Combo1.Clear
If Rs.RecordCount > 0 Then
While Not Rs.EOF
Combo1.AddItem Rs.Fields("Name").Value
Rs.MoveNext
Wend
End If
Rs.Close
DB.Close
End Sub
Die Namen aus der Datenbank werden in der Combobox auch angezeigt.
Wie bekomme ich nun die anderen beiden Datensätze in den Textfelder angezeigt,
wenn per Combobox eine Auswahl getroffen wird ?
Ich hoffe, jemand hat einen Tipp
Viele Grüße
Capt. Kirk | |
Re: Daten ... Textboxen ... und ein Problem... | | | Autor: Ne kölsche Jung | Datum: 06.12.03 20:50 |
| Hallo Capt. Kirk
Teste mal den Code.
MfG Jürgen
Option Explicit
Dim db As Database
Dim rs As Recordset
Private Sub Combo1_Click()
rs.AbsolutePosition = Combo1.ListIndex
Text1.Text = rs!Address
Text2.Text = rs!City
End Sub
Private Sub Form_Load()
Dim Count As Integer
Dim sql As String
Show
Combo1.Clear
Set db = Workspaces(0).OpenDatabase("C:\Programme\Microsoft Visual" & _
"Studio\VB98\BIBLIO.MDB")
'--Redordset nach Namen sortieren. Adresse und Stadt müssen vorhanden sein
sql = "SELECT Name, Address, City FROM Publishers " & _
" WHERE Address > '' and City > '' " & _
" ORDER BY Name ASC;"
Set rs = db.OpenRecordset(sql)
With rs
'--Nur 30 Datensätze einlesen.
'Leider alle am Anfang den geichen Buchstaben. Aber ist nur ein Test
While Not .EOF
'--Zum Testen in Form anzeigen
Me.Print !Name & " " & !Address & " " & !City
'--Name in ComboBox eintragen
Combo1.AddItem !Name
.MoveNext
Count = Count + 1
If Count >= 30 Then Exit Sub
Wend
End With
End Sub | |
Re: Daten ... Textboxen ... und ein Problem... | | | Autor: Capt. Kirk | Datum: 06.12.03 23:39 |
| Hi!!!
vielen Dank für den Code... hat einwandfrei geklappt und ich hab in auf meine
Datenbank angepasst .... Ist es z.B. auch möglich, dass ich in das Combofeld
den Begriff schreibe, mit "Enter" bestätige und dann das richtige Ergebnis angezeigt
wird? ........ Jetzt funktioniert es ja mit dem Click-Ereignis.
Habs schon ein wenig probiert... hat aber nicht soooo geklappt
Grüße
Kirk | |
Re: Daten ... Textboxen ... und ein Problem... | | | Autor: Ne kölsche Jung | Datum: 07.12.03 01:02 |
| Hallo Capt. Kirk
Habe den Code etwas umgeschrieben
Die ComboBox muss die Eigenschaft haben Style = vbComboDropDown.
Dann kannst Du in die ComboBox schreiben und mit KeyPress die Return-Taste
abfragen.
Tschaui, und grüsse Scotti von mir, Jürgen
Option Explicit
Dim db As Database
Dim rs As Recordset
Private Sub Combo1_Click()
rs.AbsolutePosition = Combo1.ListIndex
Text1.Text = rs!Address
Text2.Text = rs!City
End Sub
Private Sub Combo1_KeyPress(KeyAscii As Integer)
If KeyAscii = vbKeyReturn Then
DatenEinlesen Combo1.Text
End If
End Sub
Private Sub Form_Load()
Show
Set db = Workspaces(0).OpenDatabase("C:\Programme\Microsoft Visual" & _
"Studio\VB98\BIBLIO.MDB")
End Sub
Private Sub DatenEinlesen(ByVal Suche As String)
Dim Count As Integer
Dim sql As String
Combo1.Clear
Cls
'--Redordset nach Namen sortieren. Adresse und Stadt müssen vorhanden sein
sql = "SELECT Name, Address, City FROM Publishers " & _
" WHERE Name LIKE '*" & Suche & "*'" & _
"AND Address > '' and City > '' " & _
" ORDER BY Name ASC;"
Set rs = db.OpenRecordset(sql)
With rs
'--Nur 30 Datensätze einlesen.
'Leider alle am Anfang den geichen Buchstaben. Aber ist nur ein Test
While Not .EOF
'--Zum Testen in Form anzeigen
Me.Print !Name & " " & !Address & " " & !City
'--Name in ComboBox eintragen
Combo1.AddItem !Name
.MoveNext
Count = Count + 1
If Count >= 30 Then Exit Sub
Wend
If .RecordCount > 0 Then
Combo1.ListIndex = 0
Else
Me.Print "KEINE DATEN GEFUNDEN."
End If
End With
End Sub | |
Re: Daten ... Textboxen ... und ein Problem... | | | Autor: Capt. Kirk | Datum: 07.12.03 10:09 |
| Funzt einwandfrei!!!!!!!!!!!!!!!!!!!!
Vielen Dank kölsche Jung!!
Grüße
Capt. Kirk
PS: Grüsse an Scotty richt ich aus | |
Re: Daten ... Textboxen ... und ein Problem... | | | Autor: Capt. Kirk | Datum: 08.12.03 09:10 |
| Hi nochmal,
ist es auch möglich die Combobox zu ändern? wenn ich „a“ eingebe klappt ein
Fenster auf, wo alle Einträge beginnend mit „a“ aufgelistet werden ...
Grüße
Capt. Kirk ... und Scotty | |
Re: Daten ... Textboxen ... und ein Problem... | | | Autor: Ne kölsche Jung | Datum: 08.12.03 15:20 |
| Hallo Kirk
Wir befinden uns im Forum >Suche VB-Code<, aber ein bischen sollst Du auch tun.
Wenn man ein Problem selber lösen kann, macht das programmieren noch mehr Spass. Und man vergisst auch das dazu gelernte nicht so schnell.
Aber es hat mir trozdem Freude gemacht Dir zu helfen.
Wenn Du wirklich mal nicht weiter weisst poste dein Problem und Dir wird geholfen.
Mfg Jürgen
Nemm jede Jeck su wie he es, denn jede Jeck es anders.
Der Karnerval naht.
Option Explicit
Dim db As Database
Dim rs As Recordset
Private Sub List1_Click()
'--Damit die Change-Eigenschaft nicht aufgerufen wird
Text1.Enabled = False
With rs
.AbsolutePosition = List1.ListIndex
Text1 = !Name
Text2 = !Address
Text3 = !City
End With
List1.Visible = False
Text1.Enabled = True
End Sub
Private Sub Text1_Change()
If Text1 = "" Then
List1.Visible = False
Else
DatenEinlesen Text1.Text
End If
End Sub
Private Sub Form_Load()
Set db = Workspaces(0).OpenDatabase("C:\Programme\Microsoft Visual" & _
"Studio\VB98\BIBLIO.MDB")
End Sub
Private Sub DatenEinlesen(ByVal Suche As String)
Dim Count As Integer
Dim sql As String
List1.Clear
'--Redordset nach Namen sortieren. Adresse und Stadt müssen vorhanden sein
sql = "SELECT Name, Address, City FROM Publishers " & _
" WHERE Name LIKE '*" & Suche & "*'" & _
"AND Address > '' and City > '' " & _
" ORDER BY Name ASC;"
Set rs = db.OpenRecordset(sql)
With rs
While Not .EOF
'--Name in ListBox eintragen
List1.AddItem !Name
.MoveNext
Wend
If .RecordCount > 0 Then
With List1
.Left = Text1.Left
.Top = Text1.Top + Text1.Height
.Width = Text1.Width
.ZOrder 0
'.Height = 8 * Screen.TwipsPerPixelY '8 Einträge sichtbar
.Visible = True
End With
Else
Cls
Me.Print "KEINE DATEN GEFUNDEN."
List1.Visible = False
End If
End With
End Sub | |
| 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 |
|
|
vb@rchiv CD Vol.6 vb@rchiv Vol.6
Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
Online-Update-Funktion Entwickler-Vollversionen u.v.m.Jetzt zugreifen Tipp des Monats Neu! sevPopUp 2.0
Dynamische Kontextmenüs!
Erstellen Sie mit nur wenigen Zeilen Code Kontextmenüs dynamisch zur Laufzeit. Vordefinierte Styles (XP, Office, OfficeXP, Vista oder Windows 8) erleichtern die Anpassung an die eigenen Anwendung... Weitere Infos
|
|
|
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
|
|