Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / TDBGrid: Слишком мало параметров, / 6 сообщений из 6, страница 1 из 1
09.12.2006, 01:47
    #34187547
nat-z
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TDBGrid: Слишком мало параметров,
Суть проблемы: хочу, чтобы в TDBGrid при клике по заголовку таблица пересортировывалась по соотв столбцу. При заггузке таблицы сортировка по столбцу DPD проходит ОК:

Код: plaintext
1.
2.
3.
4.
5.
6.
ttt0 = "select * from GBPROV order by "            ' ,RBPS Where " + _
"GBprov.Gkag=RBPS.Gkag and GBprov.Kkag=RBPS.Kkag Order by "
'Data1.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & GBmenu.Pth0 & "\" & GBmenu.Xnamestat & ";"
    'Data1.DatabaseName = GBmenu.Pth0 + "\" + "GBprov.dbf"  ' ðàáîòàåò íî íàäî êîïàòüñÿ
    Data1.DatabaseName = GBmenu.Pth0 + "\" + GBmenu.Xnamestat
    Data1.RecordSource = ttt0 & "DPD"
    Data1.Refresh
При клике же выдает ошибку 3061: “Слишком мало параметров, требуется 1” на Refresh.
Каких таких параметров? Обработка клика (номер столбца выбирается правильно – проверено в MsgBox):

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Private Sub TDBGrid1_HeadClick(ByVal ColIndex As Integer)
Dim ttt As String
GBmenu.Xw1 = MsgBox("head-click. " + Str(ColIndex),  52 )
Select Case ColIndex
       Case  0 
            ttt = "DPD"
       Case  1 
            ttt = "D_N"
       Case  2 
            ttt = "K_N"
       Case  4 
            ttt = "BD"
       Case  5 
            ttt = "SUM"
       'Case 7
        '    ttt = "KVD"
       'Case 13
            ttt = "OKL"
End Select
ttt0 = "select * from GBprov ORDER by " + ttt
'Data1.DatabaseName = GBmenu.Pth0 + "\"
Data1.RecordSource = ttt0 & "tabn"
Data1.Refresh
End Sub
...
Рейтинг: 0 / 0
09.12.2006, 11:09
    #34187670
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TDBGrid: Слишком мало параметров,
Что за "tabn"? Это постфикс полей в базе? Типа DPDtabn, D_Ntabn, K_Ntabn? Это во-первых.
Во-вторых, зачем этот select case? DatField колонки грида и так содержит название поля.
Private Sub TDBGrid1_HeadClick(ByVal ColIndex As Integer)
Dim ttt As String
GBmenu.Xw1 = MsgBox("head-click. " + Str(ColIndex), 52)
ttt0 = "select * from GBprov ORDER by " + TDBGrid1.Columns(ColIndex).DataField
Data1.RecordSource = ttt0 & "tabn"
Data1.Refresh
End Sub
...
Рейтинг: 0 / 0
09.12.2006, 15:17
    #34187856
nat-z
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TDBGrid: Слишком мало параметров,
Можно конечно и так, но не в эжтом суть! Не идет же!! Что-то с ADO?
То же самое, когда вместо AdoDC1 - Data1 - проходит (правда, там пересортировка не через шапку столбцов, а через отдельную кнопкуи выбор в Combo):

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Private Sub Command1_Click()
Dim i As Integer
Dim ttt As String
i = frmGBprov2.Combo1.ListIndex
If i <  0  Then
   i =  0   ' åñëè íå âûáèðàëè ïî Combo1, òî çíà÷åíèå çàãëàâíîé ñòðîêè.
End If
Select Case i
   Case  0 
        ttt = ttt0 & "DPD"
   Case  1 
        ttt = ttt0 & "D_N"
   Case  2 
        ttt = ttt0 & "K_N"
   Case  3 
        ttt = ttt0 & "SHF"
   Case  4 
        ttt = ttt0 & "SUM"
   Case  5 
        ttt = ttt0 & "GBprov.GKAG,GBprov.KKAG"
End Select
Data1.RecordSource = ttt
Data1.Refresh
End Sub
...
Рейтинг: 0 / 0
09.12.2006, 17:15
    #34187935
nat-z
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TDBGrid: Слишком мало параметров,
Все, разобралась! Спасибо, моя вина!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
02.05.2008, 21:48
    #35290815
Sansey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TDBGrid: Слишком мало параметров,
у меня есть таблица из БД Access я ее подключила при помощи компонентов Data1 и DBGrid
Я хочу создать запрос, который будет осуществлять отбор даных по названию, введеному в компонент TextBox, я пишу в кнопку код следующего вида:
DataGrupi_Tovarov.RecordSource = "SELECT * FROM Grupi_tovorov where(nazva = Chr(34) & TextGrupi_Tovarov & Chr(34) )"
DataGrupi_Tovarov.Refresh

при запуске запроса выводиться ошибка слишком мало параметров и мне стыдно, но я не знаю что делать, хотя там должна быть элементарщина



Private Sub Command1_Click()
DataGrupi_Tovarov.RecordSource = "SELECT * FROM Grupi_tovorov where(nazva = Chr(34) & TextGrupi_Tovarov & Chr(34) )"
DataGrupi_Tovarov.Refresh
End Sub
...
Рейтинг: 0 / 0
03.05.2008, 11:51
    #35290955
Worobjoff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TDBGrid: Слишком мало параметров,
Правильно так написать:
DataGrupi_Tovarov.RecordSource = "SELECT * FROM Grupi_tovorov where (nazva =" & Chr(34) & TextGrupi_Tovarov & Chr(34) & ")"
или так:
DataGrupi_Tovarov.RecordSource = "SELECT * FROM Grupi_tovorov where (nazva =""" & TextGrupi_Tovarov & """)"
три подряд кавычки - на границе строки или две подряд - в середине

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


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