вопрос про datacombo

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
kola
Начинающий
Начинающий
 
Сообщения: 1
Зарегистрирован: 05.08.2003 (Вт) 17:48

вопрос про datacombo

Сообщение kola » 05.08.2003 (Вт) 18:05

задача стоит так :
Сделать бланк ввода данных с клавиатуры в БД MS SQL (если оператор будет щелкать мышью, то скорость набора падает) одно из полей бланка должно выбирать данные из справочника
для этого поля я поставил DataCombo. нужно, чтоб при наборе первого символа в поле, сам раскрывался список и выскакивали все значения, начинающеся с этого символа, затем второй символ и т.д.
Прошу помощи , подправте текст

Диапазон 47-57 только цифры
Под organ подразумевается DataCombo

Private Sub organ_KeyPress(KeyAscii As Integer)
If (KeyAscii > 47 And KeyAscii < 57) Then
Dim myconn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim n%
myconn.Open "Provider=sqloledb;Server=" & serv & ";Initial Catalog=" & base & ";User Id=" & Log & ";Password=" & pas & "; "
rs.ActiveConnection = myconn

strSQL = "SELECT * FROM sprav_organ WHERE sh_organ LIKE '%" & organ.Text & KeyAscii - 48 & "%' "
rs.Open (strSQL)
organ.SelStart = Len(organ.Text & KeyAscii - 47) - organ.SelLength + 1
n = organ.SelStart
If rs.EOF Then
MsgBox "no code!!!"
organ.SetFocus
Else
End If
MsgBox "yes!!!"
organ.SelStart = n
organ.SelLength = Len(organ.Text & KeyAscii - 47) - n

ElseIf KeyAscii = 13 Then
MsgBox "enter"
Else
MsgBox " not can !!"
KeyAscii = 0
End If
End Sub

Dmitriy2003
Постоялец
Постоялец
 
Сообщения: 690
Зарегистрирован: 27.05.2003 (Вт) 22:47
Откуда: Deutschland

Сообщение Dmitriy2003 » 05.08.2003 (Вт) 23:14

На счет DataCombo я не уверен.
---------------------------------------------------------------------
А обычный комбобокс можно раскыть так:
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Long

Private Const CB_SETDROPPEDWIDTH = &H160
Private Const CB_SHOWDROPDOWN = &H14F

Private Sub SetComboWidth(hwndCombo As long, lWidth As Long)

SendMessage oComboBox.hwnd, CB_SETDROPPEDWIDTH, lWidth, 0
SendMessage oComboBox.hwnd, CB_SHOWDROPDOWN, 1&, 0

End Sub
------------------------------------------------
желаю удачи. :idea:
Dmitrich

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 06.08.2003 (Ср) 10:15

А что, пропреть MatchEntry уже не помогает?


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Yandex-бот и гости: 5

    TopList