Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [VB6] Прогу скоро сдавать. Помогите плз)


Автор: RobinHoodPHD 11.10.2008, 22:04
Доброго времени суток, Господа!

Пишу прогу для института на VB. Скоро сдавать, но она работает не полностью. База данных на аксесс 2003,конретированна в 97.

ТЗ: "программа должна: связываться с базой данных
(объект data1 - класс adapter),
По нажатию кнопки (command1) пользователь должен выбирать нужную базу (MSCommonDialog - предоставляет возможность выбора файла;CommonDialog1.Action = 1)
Объект ComboBox - должен позволять выбрать любую таблицу из БД из списка.
По нажатию кнопки (command2) сетка (MSFlexGrid) должна заполняться информацией из данной таблицы путем копирования информации.
В текстовом окне (Text1) вводиться SQL запрос и по нажатию кнопки (command3) сетка должна заполняться результатами запроса"

Проблема:
При нажатии кнопки выполнения запроса (command3) сетка не заполняется результатами его выполнения((

Код:
Код

Dim N As String
Dim Zapros As String

Private Sub Command1_Click()
   
CommonDialog1.Action = 1
Data1.DatabaseName = CommonDialog1.FileName
Data1.Refresh

For I = 0 To Data1.Database.TableDefs.Count - 1
     S = Data1.Database.TableDefs(I).Name
     Combo1.AddItem S
Next I

For I = 0 To Data1.Database.QueryDefs.Count - 1
    S = Data1.Database.QueryDefs(I).Name
    Combo1.AddItem S
Next I

Combo1.Text = Combo1.List(Combo1.ListCount - 1)
End Sub

Private Sub Command2_Click()

Data1.RecordSource = Combo1.Text
Data1.Refresh
NCOLS = Data1.Recordset.Fields.Count + 1
Data1.Recordset.MoveLast
NROWS = Data1.Recordset.RecordCount + 1
 
MSFlexGrid1.Cols = NCOLS
MSFlexGrid1.Rows = NROWS
SourceName = Combo1.Text

For I = 1 To NCOLS - 1
    S = Data1.Recordset.Fields(I - 1).Name
    MSFlexGrid1.TextMatrix(0, I) = S
    MSFlexGrid1.ColWidth(I) = TextWidth(S) + 500
Next I
   
For I = 1 To NROWS - 1
    MSFlexGrid1.TextMatrix(I, 0) = I
Next I

Data1.Recordset.MoveFirst

For I = 1 To NROWS - 1
    For J = 1 To NCOLS - 1
        S = Data1.Recordset.Fields(J - 1).Value
        If IsNull(S) Then
            MSFlexGrid1.TextMatrix(I, J) = ""
        Else
            MSFlexGrid1.TextMatrix(I, J) = S
        End If
    Next J
    Data1.Recordset.MoveNext
Next I
End Sub

Private Sub Command3_Click()

Zapros = Text1.Text
Data1.RecordSource = Zapros
Data1.Refresh
End Sub


Заранее благодарен за Ваши ответы! 

Автор: Akina 13.10.2008, 07:50
Для домашних заданий, курсовых, существует "Центр Помощи".

Тема перенесена! 

Автор: Rodman 13.10.2008, 09:05

M
Rodman
Модератор: Название темы должно отражать ее суть!

Автор: kapbepucm 13.10.2008, 12:51
А вторая кнопка (command2), копирующая простую таблицу в сетку, корректно работает?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)