Runtime Error 3228

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

Runtime Error 3228

Сообщение manoff » 13.11.2007 (Вт) 12:31

Уважаемые Гуру, проблема в следущем

Пару лет назад писал небольшие отчетики из Access овских Баз данных, они успешно трудятся в другой маленькой южной стране :)))
Но тут возникла необходимость немного печатную форму поменять - выслали мне вместе с базами.
Внимание... у них все работает, у меня же после ввода данных (Дату ввожу) вылетает с Runtime Error 3228 Выбранная последовательность сортировки не поддерживается операционной системой. Причем в разных двух отчетах в разных местах

Код: Выделить всё
   Set rstModels = dbs3in1.OpenRecordset("SELECT DISTINCT PO, Model, Unit, A FROM Cutting" _
    & " WHERE Date=#" & DateStr & "#" & " ORDER BY Unit,Model;") 'На этой строке вылетает в первом файле




Код: Выделить всё
Set rstCompleted = dbsSewing.OpenRecordset("Completed", dbOpenSnapshot) 'На этой во втором


Вот не вижу взаимосвязи....
Если нужны еще какие-то данные, с удовольствием предоставлю.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 13.11.2007 (Вт) 13:03

DateStr должен быть в таком виде:

"MM/DD/YYYY"

тогда все будет работать

PS
заключайте все поля в запросе в скобки, вот так: [Date]

manoff
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 13.11.2007 (Вт) 12:15

Сообщение manoff » 14.11.2007 (Ср) 1:25

Я этот кусок не выкладывал, но дата приводится в такой формат

Код: Выделить всё
    Dated1 = CDate(Dated.Text)
    DateStr = Month(Dated1) & "/" & Day(Dated1) & "/" & Year(Dated1)


Во втором случае мне не ясно почему именно в этой строке

Причем, что характерно у тех кто работает с базой все работает. И у меня раньше (в другой сети доменной) работало...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 14.11.2007 (Ср) 8:17

Попробуй еще формат #yyyy-mm-dd#, он более однозначный.
Но вообще-то больше похоже на проблемы с DAO. Какая у тебя версия используется на машине, где происходит ошибка?
Последняя версия (также поддерживающая юникод) -- 3.6.
Lasciate ogni speranza, voi ch'entrate.

manoff
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 13.11.2007 (Вт) 12:15

Сообщение manoff » 14.11.2007 (Ср) 10:39

alibek писал(а):Попробуй еще формат #yyyy-mm-dd#, он более однозначный.
Но вообще-то больше похоже на проблемы с DAO. Какая у тебя версия используется на машине, где происходит ошибка?
Последняя версия (также поддерживающая юникод) -- 3.6.


К сожалению в этом формате точно такая-же ошибка
Версия DAO 3.6

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 14.11.2007 (Ср) 10:57

А покажи строку подключения, как ты к базе данных подключаешься?
Lasciate ogni speranza, voi ch'entrate.

manoff
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 13.11.2007 (Вт) 12:15

Сообщение manoff » 14.11.2007 (Ср) 11:56

alibek писал(а):А покажи строку подключения, как ты к базе данных подключаешься?



Код: Выделить всё
Const strFinish = "Finish.mdb"

    With Worksheets("Util2")
        strPath = .Cells(23, 1) 'Путь хранится на листе

    End With


   Set dbsFinish = Workspaces(0).OpenDatabase(strPath & strFinish)
    Set rstModels = dbsFinish.OpenRecordset("SELECT DISTINCT Model, Type, PO" _
    & " FROM Model INNER JOIN Data ON Model.Model_ID=Data.Model_ID" _
    & " WHERE Date=#" & DateStr & "# AND IsNull(Type)=0" _
    & " ORDER BY Model,PO, Type ;")


Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 14.11.2007 (Ср) 12:06

а где декларации?

Dim dbsFinish as ???
Dim rstModels as ???

хотелось бы посмотреть. открой References и проверь какие библиотеки у тебя подключены к проекту.

manoff
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 13.11.2007 (Вт) 12:15

Сообщение manoff » 14.11.2007 (Ср) 13:01

Konst_One писал(а):а где декларации?

Dim dbsFinish as ???
Dim rstModels as ???

хотелось бы посмотреть. открой References и проверь какие библиотеки у тебя подключены к проекту.


Прошу прощения, не включил эти строки в предыдущий пост
Код: Выделить всё

    Dim dbsFinish As Database
    Dim rstColors As Recordset
    Dim rstModels As Recordset

Вложения
Библиотеки.JPG
Библиотеки.JPG (47.4 Кб) Просмотров: 1360

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 14.11.2007 (Ср) 13:21

Код: Выделить всё
Dim dbsFinish As DAO.Database
Dim rstColors As DAO.Recordset
Dim rstModels As DAO.Recordset
Dim SQL as String
Dim sBase as String
   
sBase="C:\Data\Finish.mdb" 'подставьте влоб пусть к базе

Set dbsFinish = Workspaces(0).OpenDatabase(sBase)

If Not dbsFinish Is Nothing then

'укажите правильные префиксы (m,d) у полей , т.к. я не в курсе какие у вас поля в какой таблице
SQL="SELECT DISTINCT m.[Model], m.[Type], m.[PO] FROM [Model] m INNER JOIN Data d ON m.[Model_ID]=d.[Model_ID] WHERE d.[Date]=#2007-11-14# AND IsNull(m.[Type])=0 ORDER BY m.[Model],m.[PO],m.[Type]"

Set rstModels = dbsFinish.OpenRecordset(SQL)


else
   MsgBox "База отсутствует или ошибка подключения"
end if

manoff
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 13.11.2007 (Вт) 12:15

Сообщение manoff » 14.11.2007 (Ср) 13:39

Код: Выделить всё

'укажите правильные префиксы (m,d) у полей , т.к. я не в курсе какие у вас поля в какой таблице
SQL = "SELECT DISTINCT model.[Model], model.[Type], model.[PO] FROM model INNER JOIN Data ON model.[Model_ID]=Data.[Model_ID] WHERE Data.[Date]=#2007-11-14# AND IsNull(model.[Type])=0 ORDER BY model.[Model],model.[PO],model.[Type]"


Аналогичная ошибка при исполнении строки
Код: Выделить всё
Set rstModels = dbsFinish.OpenRecordset(SQL)
Последний раз редактировалось manoff 14.11.2007 (Ср) 13:43, всего редактировалось 1 раз.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 14.11.2007 (Ср) 13:41

а в самом MSAccess в вашей базе Finish.mdb данный запрос отрабатывает?

вы неправильно исправили запрос, нужно так:

Код: Выделить всё
SQL = "SELECT DISTINCT model.[Model], model.[Type], model.[PO] FROM model INNER JOIN Data D ON model.[Model_ID]=D.[Model_ID] WHERE D.[Date]=#2007-11-14# AND IsNull(model.[Type])=0 ORDER BY model.[Model],model.[PO],model.[Type]"

manoff
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 13.11.2007 (Вт) 12:15

Сообщение manoff » 15.11.2007 (Чт) 1:12

Я прошу прощения что исчез, у меня был уже глубокий вечер - уехал домой.

Напутал немного с полями внося коррективы в Ваш запрос...
Вот Верный вариант, отлично работающий в самой акцессе


Код: Выделить всё
SELECT DISTINCT model.Model, model.Type, model.PO
FROM model INNER JOIN Data AS D ON model.Model_ID=D.Model_ID
WHERE Model.Date=#9/27/2007# And IsNull(model.Type)=0
ORDER BY model.Model, model.PO, model.Type;

EUGY
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 214
Зарегистрирован: 09.11.2006 (Чт) 22:51
Откуда: Мурманск

Сообщение EUGY » 15.11.2007 (Чт) 1:23

Вот мне не понятно, причем здесь формат даты или вообще синтакис SQL, когда указано на ошибку сортировки 3228.
Я, правда, бегло пробежался по поиску, но советы там такие:
1. переустановить MDAC.
2. CompactDatabase (JetEngine) в нужной кодировке.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 15.11.2007 (Чт) 11:38

MDAC конечно желательно установить последний, это понятно.
но проблема все равно не ясна, в Access ведь запрос работает.

попробуйте скачать MS Jet 4.0 споследним SP 8 и установить его заново:
http://msdn2.microsoft.com/en-us/data/aa937730.aspx

может пригодиться:
http://support.microsoft.com/kb/295334/

manoff
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 13.11.2007 (Вт) 12:15

Сообщение manoff » 16.11.2007 (Пт) 2:02

Konst_One писал(а):MDAC конечно желательно установить последний, это понятно.
но проблема все равно не ясна, в Access ведь запрос работает.

попробуйте скачать MS Jet 4.0 споследним SP 8 и установить его заново:
http://msdn2.microsoft.com/en-us/data/aa937730.aspx

может пригодиться:
http://support.microsoft.com/kb/295334/


MDAC самый последний 2.8 не дает качнуть :( Венда не совсем купленная :))) качнул 2.7 нет результата :(
Jet последний, на всякий случай качнул, ставиться начинает и орет, что его ставить не надо...
Еще мысли есть господа? Может такое быть из-за запуска всего с сетевого диска? Но права точно в норме.
Последний раз редактировалось manoff 16.11.2007 (Пт) 3:23, всего редактировалось 1 раз.

Crio
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 84
Зарегистрирован: 21.05.2007 (Пн) 12:01
Откуда: Питер

Сообщение Crio » 16.11.2007 (Пт) 2:50

А может попробовать установить на компьютере язык той маленькой южной страны?

manoff
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 13.11.2007 (Вт) 12:15

Сообщение manoff » 16.11.2007 (Пт) 3:26

Crio писал(а):А может попробовать установить на компьютере язык той маленькой южной страны?


В базе то все на английском, а страна Камбоджия, хрен его знает на чем они говорят. Я эти базы для корейцев южных делал, года так 4 назад. Не было проблем никаких хотя половина юзверей в сети сидело на русской венде, треть на корейской, остальные на инглише


Блин, уже и локально попробовал и на другой машине и даже оффис XP раскопал ... Ничего не помогает

Crio
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 84
Зарегистрирован: 21.05.2007 (Пн) 12:01
Откуда: Питер

Сообщение Crio » 17.11.2007 (Сб) 0:55

А на каком языке записи в самих базах? Я к тому, может у них какой-нибудь камбоджийский KOI-8 задействован, вот русский Windows его и не переваривает...

manoff
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 13.11.2007 (Вт) 12:15

Сообщение manoff » 19.11.2007 (Пн) 2:37

Да все по английски, могу скинуть кто хочет помочь сами базы (2 мега примерно).

EUGY
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 214
Зарегистрирован: 09.11.2006 (Чт) 22:51
Откуда: Мурманск

Сообщение EUGY » 19.11.2007 (Пн) 2:46

Мне интересно. Прикрепи.

manoff
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 13.11.2007 (Вт) 12:15

Сообщение manoff » 19.11.2007 (Пн) 8:27

Ужалось до 400 кб
Заранее спасибо тем кто посмотрит
Вложения
Finish.rar
(303.06 Кб) Скачиваний: 47

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 19.11.2007 (Пн) 9:38

База в версии Access 2000, юникод понимать должна.
MDAC можешь взять отсюда: http://www.macropool.de/en/download/mdac.html
Lasciate ogni speranza, voi ch'entrate.

EUGY
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 214
Зарегистрирован: 09.11.2006 (Чт) 22:51
Откуда: Мурманск

Сообщение EUGY » 19.11.2007 (Пн) 9:41

Код: Выделить всё

    Dim conn As ADODB.Connection
    Set conn = New ADODB.Connection
    conn.ConnectionString = " Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & probabasename
    conn.Open
    Debug.Print conn.Properties("Locale Identifier").Value


В базе Finish.mdb локал = 1042, а надо бы - 1033
После сжатия в самом акцессе (Сервис -> Служебные пр. ->Сжать и восстановить ..) локал сменился на 1033 и запрос из VB работает как надо.
Попытка сжать через JRO не увенчалась успехом.
Jet 2.6 ругается на старый формат базы, странно...
P.S. Кароче , ставим корейский MDAC :)

manoff
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 13.11.2007 (Вт) 12:15

Сообщение manoff » 19.11.2007 (Пн) 10:36

Преобразовал базы в формат 200-2003 и все заработало...
Спасибо всем кто откликнулся и помог


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

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

Сейчас этот форум просматривают: Google-бот и гости: 45

    TopList