Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 10.11.2015
Сообщений: 24

ADODB несоответствие типов

18.03.2016, 15:33. Показов 975. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!

Прошу помощи у знающих людей. Не получается процедура содержащая ADODB. Пишет несоответствие типов.

PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Public Function iskl1(ByRef m As Integer, ByRef y As Integer) As String
 
Dim qqq As New ADODB.Recordset
Dim CutResults As Variant
 
qqq.Open ("SELECT ART.KOD FROM(SELECT TOP 2 * FROM (SELECT DISTINCTROW DATA.tYear, DATA.tMonth, ART.Supplier, ART.SKU, ART.[KOD], ART.CAT, Sum(DATA.SalesQty) AS [Sum - SalesQty] FROM ART INNER JOIN DATA ON ART.[KOD] = DATA.[artid] GROUP BY DATA.tYear, DATA.tMonth, ART.Supplier, ART.SKU, ART.[KOD], ART.CAT HAVING (((Data.tYear) = " & y & ") And ((Data.tMonth) = " & m & ") And ((ART.Supplier) = 'ÍÂÏ Íèâà') And (ART.CAT = 'Âåðìóò, àïåðèòèâ')) ORDER BY Sum(DATA.SalesQty) DESC))" _
 & " UNION ALL SELECT ART.KOD FROM(SELECT TOP 2 * FROM (SELECT DISTINCTROW DATA.tYear, DATA.tMonth, ART.Supplier, ART.SKU, ART.[KOD], ART.CAT, Sum(DATA.SalesQty) AS [Sum - SalesQty] FROM ART INNER JOIN DATA ON ART.[KOD] = DATA.[artid] GROUP BY DATA.tYear, DATA.tMonth, ART.Supplier, ART.SKU, ART.[KOD], ART.CAT HAVING (((Data.tYear) = " & y & ") And ((Data.tMonth) = " & m & ") And ((ART.Supplier) = 'ÊÇØÂ') And (ART.CAT = 'Âèíî')) ORDER BY Sum(DATA.SalesQty) DESC))" _
 & " UNION ALL SELECT ART.KOD FROM(SELECT TOP 2 * FROM (SELECT DISTINCTROW DATA.tYear, DATA.tMonth, ART.Supplier, ART.SKU, ART.[KOD], ART.CAT, Sum(DATA.SalesQty) AS [Sum - SalesQty] FROM ART INNER JOIN DATA ON ART.[KOD] = DATA.[artid] GROUP BY DATA.tYear, DATA.tMonth, ART.Supplier, ART.SKU, ART.[KOD], ART.CAT HAVING (((Data.tYear) = " & y & ") And ((Data.tMonth) = " & m & ") And ((ART.Supplier) = 'ÑÂÊÇ') And (ART.CAT = 'Âîäêà')) ORDER BY Sum(DATA.SalesQty) DESC))" _
 & " UNION ALL SELECT ART.KOD FROM(SELECT TOP 2 * FROM (SELECT DISTINCTROW DATA.tYear, DATA.tMonth, ART.Supplier, ART.SKU, ART.[KOD], ART.CAT, Sum(DATA.SalesQty) AS [Sum - SalesQty] FROM ART INNER JOIN DATA ON ART.[KOD] = DATA.[artid] GROUP BY DATA.tYear, DATA.tMonth, ART.Supplier, ART.SKU, ART.[KOD], ART.CAT HAVING (((Data.tYear) = " & y & ") And ((Data.tMonth) = " & m & ") And ((ART.Supplier) = 'Ïåòðóñ') And (ART.CAT = 'Ëèêåðû, íàñòîéêè, áàëüçàìû')) ORDER BY Sum(DATA.SalesQty) DESC))" _
 & " UNION ALL SELECT ART.KOD FROM(SELECT TOP 2 * FROM (SELECT DISTINCTROW DATA.tYear, DATA.tMonth, ART.Supplier, ART.SKU, ART.[KOD], ART.CAT, Sum(DATA.SalesQty) AS [Sum - SalesQty] FROM ART INNER JOIN DATA ON ART.[KOD] = DATA.[artid] GROUP BY DATA.tYear, DATA.tMonth, ART.Supplier, ART.SKU, ART.[KOD], ART.CAT HAVING (((Data.tYear) = " & y & ") And ((Data.tMonth) = " & m & ") And ((ART.Supplier) = 'Àëåô') And (ART.CAT = 'Êîíüÿê')) ORDER BY Sum(DATA.SalesQty) DESC));"), CurrentProject.Connection, adOpenStatic
 If Not qqq.EOF Then
    CutResults = qqq.GetRows
End If
 
Dim i As Integer
iskl1 = CStr(CutResults(0, 0))
For i = 1 To UBound(CutResults, 2)
    iskl1 = iskl1 & "," & CutResults(0, i)
Next i
 
End Function
подскажите, пожалуйста, очень надо
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.03.2016, 15:33
Ответы с готовыми решениями:

Несоответствие типов
- в этом файле две базы данных, которые должны синхронизироваться. Главная база с названием "а", открываете ее и нажимаете на...

Несоответствие типов данных!!!
Есть форма 'Дата' с одним полем 'datavkl', где отображается по умолчанию текущая дата и время. Исправляя в этом поле дату или время хочу...

Несоответствие типов данных
Друзья форумчане. Всех приветствую. У меня образовалась на ровном месте проблема которую уже 3 часа не могу решить. Начну с начала. ...

4
шапоклякистка 8-го дня
 Аватар для texnik-san
3681 / 2241 / 391
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
18.03.2016, 16:19
На какой строке?

Добавлено через 2 минуты
Кстати, смысл загонять рекордсет в массив я вообще не понимаю. Смысл перебирать измерения массива - тоже. По запросу же видно, что он единственное поле возвращает.

Кстати, возможно, ругается как раз оператор UBound(CutResults, 2). Нет у массива никакого второго измерения, он линейный.

Добавлено через 9 минут
Короче, вместо всего этого вот куска:

Visual Basic
1
2
3
4
5
6
7
8
9
If Not qqq.EOF Then
    CutResults = qqq.GetRows
End If
 
Dim i As Integer
iskl1 = CStr(CutResults(0, 0))
For i = 1 To UBound(CutResults, 2)
    iskl1 = iskl1 & "," & CutResults(0, i)
Next i
используем

Visual Basic
1
CutResults = qqq.GetString(adClipString, , ",", ",", "")
0
Модератор
Эксперт MS Access
 Аватар для shanemac51
12231 / 5078 / 814
Регистрация: 07.08.2010
Сообщений: 14,937
Записей в блоге: 4
18.03.2016, 16:36
попробуйте код(конечно вы неверно выложили --иероглифы и таблица имеет зарезервированное имя DATA
Кликните здесь для просмотра всего текста

Public Function iskl1(ByRef m As Integer, ByRef y As Integer) As String

Dim qqq As New ADODB.Recordset, s, k
Dim CutResults As Variant
s = ""
k = 99

s = s & " SELECT ART.KOD FROM"
s = s & " (SELECT TOP 2 * FROM "
s = s & " (SELECT DISTINCTROW DATA1.tYear, DATA1.tMonth, ART.Supplier, ART.SKU, ART.[KOD],"
s = s & " ART.CAT, Sum(DATA1.SalesQty) AS [Sum - SalesQty]"
s = s & " FROM ART"
s = s & " INNER JOIN DATA as data1 ON ART.[KOD] = DATA1.[artid]"
s = s & " "
s = s & " GROUP BY DATA1.tYear, DATA1.tMonth, ART.Supplier, ART.SKU, ART.[KOD], ART.CAT"
s = s & " HAVING (((Data.tYear) = " & y & ")"
s = s & " And ((Data.tMonth) = " & m & ")"
s = s & " "
s = s & " And ((ART.Supplier) = 'ÍÂÏ ГЌГЁГўГ*')"
s = s & " "
s = s & " And (ART.CAT = 'Âåðìóò, Г*ïåðèòèâ'))"
s = s & " ORDER BY Sum(DATA1.SalesQty) DESC"
s = s & ") )"
s = s & " "
If k = 1 Then
GoTo mfin
End If
s = s & " UNION ALL"
s = s & " SELECT ART.KOD FROM"
s = s & " (SELECT TOP 2 * FROM "
s = s & " (SELECT DISTINCTROW DATA.tYear, DATA.tMonth, ART.Supplier, ART.SKU, ART.[KOD],"
s = s & " ART.CAT, Sum(DATA.SalesQty) AS [Sum - SalesQty]"
s = s & " FROM ART INNER JOIN DATA ON ART.[KOD] = DATA.[artid]"
s = s & " GROUP BY DATA.tYear, DATA.tMonth, ART.Supplier, ART.SKU, ART.[KOD], ART.CAT"
s = s & " HAVING (((Data.tYear) = " & y & ")"
s = s & " And ((Data.tMonth) = " & m & ")"
s = s & " And ((ART.Supplier) = 'ÊÇ�Â')"
s = s & " And (ART.CAT = 'ÂèГ*Г®')) ORDER BY Sum(DATA.SalesQty) DESC))"
If k = 2 Then
GoTo mfin
End If

s = s & " UNION ALL"
s = s & " SELECT ART.KOD FROM"
s = s & " (SELECT TOP 2 * FROM "
s = s & " (SELECT DISTINCTROW DATA.tYear, DATA.tMonth, ART.Supplier, ART.SKU, ART.[KOD],"
s = s & " ART.CAT, Sum(DATA.SalesQty) AS [Sum - SalesQty]"
s = s & " FROM ART INNER JOIN DATA ON ART.[KOD] = DATA.[artid]"
s = s & " GROUP BY DATA.tYear, DATA.tMonth, ART.Supplier, ART.SKU, ART.[KOD], ART.CAT"
s = s & " HAVING (((Data.tYear) = " & y & ")"
s = s & " And ((Data.tMonth) = " & m & ")"
s = s & " And ((ART.Supplier) = 'ÑÂÊÇ')"
s = s & " And (ART.CAT = 'ÂîäêГ*')) ORDER BY Sum(DATA.SalesQty) DESC))"
If k = 3 Then
GoTo mfin
End If

s = s & " UNION ALL"
s = s & " SELECT ART.KOD FROM"
s = s & " (SELECT TOP 2 * FROM "
s = s & " (SELECT DISTINCTROW DATA.tYear, DATA.tMonth, ART.Supplier, ART.SKU, ART.[KOD],"
s = s & " ART.CAT, Sum(DATA.SalesQty) AS [Sum - SalesQty]"
s = s & " FROM ART INNER JOIN DATA ON ART.[KOD] = DATA.[artid]"
s = s & " GROUP BY DATA.tYear, DATA.tMonth, ART.Supplier, ART.SKU, ART.[KOD], ART.CAT"
s = s & " HAVING (((Data.tYear) = " & y & ")"
s = s & " And ((Data.tMonth) = " & m & ")"
s = s & " And ((ART.Supplier) = 'Ïåòðóñ')"
s = s & " And (ART.CAT = 'Ëèêåðû, Г*Г*ñòîéêè, ГЎГ*ëüçГ*ìû'))"
s = s & " ORDER BY Sum(DATA.SalesQty) DESC))"
If k = 4 Then
GoTo mfin
End If
s = s & " UNION ALL"
s = s & " SELECT ART.KOD FROM"
s = s & " (SELECT TOP 2 * FROM "
s = s & " (SELECT DISTINCTROW DATA.tYear, DATA.tMonth, ART.Supplier, ART.SKU, ART.[KOD],"
s = s & " ART.CAT, Sum(DATA.SalesQty) AS [Sum - SalesQty]"
s = s & " FROM ART INNER JOIN DATA ON ART.[KOD] = DATA.[artid]"
s = s & " GROUP BY DATA.tYear, DATA.tMonth, ART.Supplier, ART.SKU, ART.[KOD], ART.CAT"
s = s & " HAVING (((Data.tYear) = " & y & ")"
s = s & " And ((Data.tMonth) = " & m & ")"
s = s & " And ((ART.Supplier) = 'Àëåô')"
s = s & " And (ART.CAT = 'ГЉГ®Г*ГјГїГЄ'))"
s = s & " ORDER BY Sum(DATA.SalesQty) DESC))"
mfin:
CurrentDb.QueryDefs("wrem").SQL = s
Debug.Print s
''Exit Function
qqq.Open s, CurrentProject.Connection, adOpenStatic
If Not qqq.EOF Then
CutResults = qqq.GetRows
End If

Dim i As Integer
iskl1 = CStr(CutResults(0, 0))
For i = 1 To UBound(CutResults, 2)
iskl1 = iskl1 & "," & CutResults(0, i)
Next i

End Function

0
0 / 0 / 0
Регистрация: 10.11.2015
Сообщений: 24
18.03.2016, 20:24  [ТС]
не работает
окно сообщения: Compile error:
User-defined type not defined

Добавлено через 2 минуты

texnik-san

Запрос выдает массив из нескольких строк, которые преобразуются в единую строку и вставляются в условия отбора.
результат этой функции - выдать строку в нужном формате, которую в дальнейшем можно вставить в запрос другого модуля.
0
шапоклякистка 8-го дня
 Аватар для texnik-san
3681 / 2241 / 391
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
18.03.2016, 20:56
Цитата Сообщение от kwadrad Посмотреть сообщение
Запрос выдает массив из нескольких строк, которые преобразуются в единую строку
Я это по вашему коду поняла. Вы просто не вникали в метод GetString объекта ADODB.Recordset - он (метод) именно для этого (преобразования данных рекордсета в единую строку) и предназначен.

Справка на сайте макрософт
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.03.2016, 20:56
Помогаю со студенческими работами здесь

Несоответствие типов данных
всем привет, подскажите как сделать, чтобы процедура заработала? DoCmd.OpenReport "O_N_MKN", acViewReport, ,...

Несоответствие типов данных в условии отбора
Несоответствие типов данных в условии отбора: Set r = CurrentDb.OpenRecordset("select id from days where dat='" + Me.p3.Value +...

Несоответствие типов данных в условии отбора
Здравствуйте, пожалуйста можете помочь исправить sql запрос SELECT Учет.Фамилия, Учет.Название FROM Учет WHERE...

Несоответствие типов данных в выражении условия отбора
UPDATE Сеансы SET Время='17:00' WHERE Время="15:00" В чем может быть проблема?

Несоответствие типов данных в выражении условия отбора
Всем доброго дня. Вопрос новичка Access 2010. Вот такая функция написана: Public Function GrN(NambSt) As Integer ' Подсчет...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru