powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Помогите начинающему
11 сообщений из 11, страница 1 из 1
Помогите начинающему
    #33291352
Miro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужен совет профессионала.

Я работаю в ACCESS 2000, мне нужно на форме создать выпадающий список,
привязать к нему набор записей из БД(желательно использовать хранимую процедуру) и поставить этот список на форму.

Кто делал такое - напишите код пожалуйста, а то я боюсь долго буду писать все это. :)

Заранее спасибо!
...
Рейтинг: 0 / 0
Помогите начинающему
    #33291481
hangkil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нужно использовать использовать datacombobox, это даст еще одно свойство boundcolumn, скрытое поле, к которому можно привязаться...

rs - это заранее открытый рекордсет

Set cb.RowSource = rs
cb.ListField = "поле1"

и скрытое поле от глаз
cb_tipo.BoundColumn = "поле2"

которое можно использовать в дальнейшем как
cb_tipo.Boundtext

если что ...
...
Рейтинг: 0 / 0
Помогите начинающему
    #33291529
Miro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2hangkil

Извините, но я вас плохо понял.

Что я думаю. Тут получается три задачи:

1. Создать выпадающий список.

Думаю что-то вроде:

Код: plaintext
dim cbTest as new Combobox

2. Открыть базу данных

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
    Dim Conn As New ADODB.Connection
    Dim cmd As New ADODB.Command
    Dim prm1 As ADODB.Parameter
    Dim prm2 As ADODB.Parameter
    
    Conn.Open "Driver={SQL Server};" & _
    "Server=RC;" & _
    "Database=Service;"
    
    Set cmd.ActiveConnection = Conn
    cmd.CommandText = "TEMP"
    cmd.CommandType = adCmdStoredProc
    
    ' Входной параметр.
     Set prm1 = cmd.CreateParameter("@month", adInteger, adParamInput, ,  1 )
     cmd.Parameters.Append prm1


3. Положить на форму(например в середину) этот самый комбобокс

Не знаю как!

4. Сделать так, чтобы список в комбобоксе соответствовал списку, который вернет процедура

Не знаю как!

Помогите, кто знает.

С Уважением,
Михаил
...
Рейтинг: 0 / 0
Помогите начинающему
    #33291734
Андрей Il
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
3. Положить на форму(например в середину) этот самый комбобокс

Если ты открываешь готовую базу данных, то в ней надо заранее создать форму с выпадающим списком, а потом уже работать непосредственно с ним.

4. Сделать так, чтобы список в комбобоксе соответствовал списку, который вернет процедура

Что за список, что за процедура?

Нужен пример и подробности: запуск из Access2000 или из другого приложения, нужно создать выпадающий список на форме в Access2000 или в другой программе.
...
Рейтинг: 0 / 0
Помогите начинающему
    #33291755
Miro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Андрей Il
Если ты открываешь готовую базу данных, то в ней надо заранее создать форму с выпадающим списком, а потом уже работать непосредственно с ним.


Можно заранее создать форму с выпадающим списком. Только у меня задачу другая - именно создать его, и поставить на форму, во время выполнения программы. В общем-то если такого никто не делал - я сам наверное разберусь.
...
Рейтинг: 0 / 0
Помогите начинающему
    #33291939
shady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MiroМожно заранее создать форму с выпадающим списком. Только у меня задачу другая - именно создать его, и поставить на форму, во время выполнения программы. В общем-то если такого никто не делал - я сам наверное разберусь.
можно поинтерисоваться для чего именно создавать програмно? может все-же проще когда нужно показать этот датакомбо так
Код: plaintext
1.
dc.visible = true
а подключить как написано выше.
если не устраивает, тогда по подробнее для чего это нужно.
если я не понял автора, извините...
...
Рейтинг: 0 / 0
Помогите начинающему
    #33292334
Access ADP.

Допустим у тебя есть ХП:

Код: plaintext
1.
2.
3.
4.
ALTER PROCEDURE СохраненнаяПроцедура1
(@custid int)
AS SELECT     LastName
FROM         tblCustomer
WHERE     (CustomerId = @custid)

Создаешь форму и делаешь список.
На событие загрузки формы:

Код: plaintext
1.
2.
Private Sub Form_Load()
    Me.cboParameter.RowSource = "EXEC СохраненнаяПроцедура1 " &  1 
End Sub

Или ты хочешь создать программно форму и список или есть форма и там создать список (почему нельзя воспользоваться видимостью списка?) и его источником назначить ХП?
...
Рейтинг: 0 / 0
Помогите начинающему
    #33292353
hangkil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Shady

нда... туповаты мы еще с тобой... :)
...
Рейтинг: 0 / 0
Помогите начинающему
    #33293512
Miro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пользователь2

Создаешь форму и делаешь список.
На событие загрузки формы:

Код: plaintext
1.
2.
Private Sub Form_Load()
    Me.cboParameter.RowSource = "EXEC СохраненнаяПроцедура1 " &  1 
End Sub

Или ты хочешь создать программно форму и список или есть форма и там создать список (почему нельзя воспользоваться видимостью списка?) и его источником назначить ХП?

Да, я на самом деле хочу создать форму программно. И форму, и все ее компоненты.

Но я похоже совсем плохо знаком с Access. Потому что даже когда я делаю то, что вы написали, у меня возникает ошибка - Ошибочная инструкция SQL; предполагалось 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT' или 'UPDATE'. (Ошибка 3129)

Что с этим можно сделать?
...
Рейтинг: 0 / 0
Помогите начинающему
    #33294840
У тебя ADP или MDB?

MiroДа, я на самом деле хочу создать форму программно. И форму, и все ее компоненты.

Почитай про методы CreateForm и CreateControl.

Вот пример.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
    Dim frm As Form
    Dim ctlLabel As Control
    Dim lstText As Control
    Dim intDataX As Integer
    Dim intDataY As Integer
    Dim intLabelX As Integer
    Dim intLabelY As Integer

    Set frm = CreateForm
    
    frm.RecordSource = "Table1"
    
    intLabelX =  100 
    intLabelY =  100 
    intDataX =  1000 
    intDataY =  100 

    Set lstText = CreateControl(frm.Name, acListBox, , "", "", _
      intDataX, intDataY)
    Set ctlLabel = CreateControl(frm.Name, acLabel, , _
      lstText.Name, "NewLabel", intLabelX, intLabelY)
      
    lstText.RowSource = "Table1"
    
    DoCmd.Close acForm, frm.Name, acSaveYes
...
Рейтинг: 0 / 0
Помогите начинающему
    #33330697
Miro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пользователь2У тебя ADP или MDB?


У меня MDB. Спасибо большое за ответ.

С Уважением,
Михаил
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Помогите начинающему
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]