|
Ошибка в INSERT (не понимает формат даты)
|
|||
---|---|---|---|
#18+
Код: plsql 1. 2. 3. 4. 5. 6.
Привет всем! Пишет ошибку при запуске данного запроса. Указывает на дату. ЧЯДНТАК? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2014, 14:54 |
|
Ошибка в INSERT (не понимает формат даты)
|
|||
---|---|---|---|
#18+
INSERT INTO jurnal (datetime, pc_name, subject) VALUES( Format("22.10.2014", "dd.mm.yyyy") , 1 , 1 ) уточняю ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2014, 14:54 |
|
Ошибка в INSERT (не понимает формат даты)
|
|||
---|---|---|---|
#18+
В ФАК. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2014, 15:04 |
|
Ошибка в INSERT (не понимает формат даты)
|
|||
---|---|---|---|
#18+
П-Л, а это не из ФАКа? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2014, 15:10 |
|
Ошибка в INSERT (не понимает формат даты)
|
|||
---|---|---|---|
#18+
авторне понимает формат датыКто не понимает? Тот, кто принимает, или тот, кто передает? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2014, 15:20 |
|
Ошибка в INSERT (не понимает формат даты)
|
|||
---|---|---|---|
#18+
Ну, во-первых, Format("22.10.2014", "\#mm\/dd\/yyyy\#") А во-вторых, не устаю повторять, что INSERT INTO ... VALUES - гнилой запрос! Это вы на дату наступили, а еще есть дробные числа, Null, строки с кавычками внутри... Проще, надежнее и нагляднее: Код: vbnet 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2014, 15:28 |
|
Ошибка в INSERT (не понимает формат даты)
|
|||
---|---|---|---|
#18+
Анатолий ( Киев ) ![datetime]="22.10.2014" Только не так. Так будет преобразовано к дате случайным образом. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2014, 17:24 |
|
Ошибка в INSERT (не понимает формат даты)
|
|||
---|---|---|---|
#18+
Владимир СанычАнатолий ( Киев ) ![datetime]="22.10.2014" Только не так. Так будет преобразовано к дате случайным образом. Если представление даты соответствует системному, то все будет правильно. Код: vbnet 1. 2.
Хотя, конечно, я с Вами согласен. Надежнее - DateSerial и т.п. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2014, 17:32 |
|
Ошибка в INSERT (не понимает формат даты)
|
|||
---|---|---|---|
#18+
enakenenaken Код: plsql 1.
а в FAQ написано "mm\/dd\/yy" Код: vbnet 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2014, 18:31 |
|
Ошибка в INSERT (не понимает формат даты)
|
|||
---|---|---|---|
#18+
Анатолий ( Киев )Ну, во-первых, Format("22.10.2014", "\#mm\/dd\/yyyy\#") А во-вторых, не устаю повторять, что INSERT INTO ... VALUES - гнилой запрос! Это вы на дату наступили, а еще есть дробные числа, Null, строки с кавычками внутри... Проще, надежнее и нагляднее: Код: vbnet 1. 2. 3. 4. 5. 6. 7.
Анатолий, а можете подсказать, таким образом запрос на обновление можно сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2018, 10:56 |
|
Ошибка в INSERT (не понимает формат даты)
|
|||
---|---|---|---|
#18+
Вместо Код: vbnet 1.
поставь Код: vbnet 1.
и будет тебе счастье. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2018, 11:07 |
|
Ошибка в INSERT (не понимает формат даты)
|
|||
---|---|---|---|
#18+
MokeevP, что же Вы приводите рекордсет, а спрашиваете про запрос? В запросе надо вместо INSERT поставить UPDATE. И не путайте. Запросы для рекордсетов всегда формируются через SELECT. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2018, 11:12 |
|
Ошибка в INSERT (не понимает формат даты)
|
|||
---|---|---|---|
#18+
JossMokeevP, что же Вы приводите рекордсет, а спрашиваете про запрос? В запросе надо вместо INSERT поставить UPDATE. И не путайте. Запросы для рекордсетов всегда формируются через SELECT. Спасибо! Честно скажу, с терминами я дружу очень плохо пока что... то есть, если говорить предметно, то рекордсет на изменение будет иметь вид Код: vbnet 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2018, 11:48 |
|
Ошибка в INSERT (не понимает формат даты)
|
|||
---|---|---|---|
#18+
Код: vbnet 1.
Это значит "записать все произведённые изменения в таблицу" Все вот эти действия Код: vbnet 1. 2. 3.
Это только подготовка к записи. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2018, 12:15 |
|
Ошибка в INSERT (не понимает формат даты)
|
|||
---|---|---|---|
#18+
Эти действия Код: vbnet 1. 2. 3.
только показывают, каким полям какие значения Вы хотите присвоить. А само присвоение выполняется по команде Update ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2018, 12:18 |
|
Ошибка в INSERT (не понимает формат даты)
|
|||
---|---|---|---|
#18+
MokeevP Код: vbnet 1.
Вот так делать нельзя. Здесь в поле типа дата-время заносится значение типа текст. Преобразование будет выполнено автоматически, и не всегда так, как мы хотели. В данном примере еще ничего, а вот какое-нибудь "01.02.03" может быть преобразовано в дату 6 разными способами. На самом деле надо писать вот так: Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2018, 13:15 |
|
Ошибка в INSERT (не понимает формат даты)
|
|||
---|---|---|---|
#18+
Владимир СанычMokeevP Код: vbnet 1.
Вот так делать нельзя. Здесь в поле типа дата-время заносится значение типа текст. Преобразование будет выполнено автоматически, и не всегда так, как мы хотели. В данном примере еще ничего, а вот какое-нибудь "01.02.03" может быть преобразовано в дату 6 разными способами. На самом деле надо писать вот так: Код: vbnet 1.
К счастью, мне совершенно не нужно в программу писать конкретную дату К сожалению, мне нужно тащить даты из Excel, там они хранятся соответственно + бонусом может быть время (т.е. в ячейке записано что-то вроде 49123,123982675... Подробнее про мою проблему И ещё по теме рекордсетов - а как мне с их помощью можно быстренько значения вытащить и переменной присвоить? И снова - куда читать про рекордсеты чтобы понять? справку не понял ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2018, 14:02 |
|
Ошибка в INSERT (не понимает формат даты)
|
|||
---|---|---|---|
#18+
MokeevPИ снова - куда читать про рекордсеты чтобы понять? справку не понялТак я же тебе приводил конкретную книгу! Тоже не понял? Там очень квалифицированно написано. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2018, 14:49 |
|
Ошибка в INSERT (не понимает формат даты)
|
|||
---|---|---|---|
#18+
ПанургMokeevPИ снова - куда читать про рекордсеты чтобы понять? справку не понялТак я же тебе приводил конкретную книгу! Тоже не понял? Там очень квалифицированно написано. Я её читаю, но очень медленно... если не затруднит, подскажите, можно ли всё таки таким же подходом с With сделать такой запрос на извлечение данных? И, по теме, уважаемые знатоки и знающие, как правильно с датами разобраться? Из фака подчерпнул вышенаписанную информацию и родит такой фрагмент: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41.
Смысл программы: прочесать таблицу Excel, если есть такие позиции в БД - игнорировать, иначе - добавить Иииии... оно так не работает! Даты наипроизвольнейшим образом конвертируются и потом не ищутся первым запросом! А при добавлении случается дубликат ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2018, 15:40 |
|
Ошибка в INSERT (не понимает формат даты)
|
|||
---|---|---|---|
#18+
Эмпирическим путём выяснил, что когда ищу нужно делать мм.дд.гггг: MokeevP Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9.
а когда уже вношу - дд.мм.гггг: MokeevP Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
Почему так происходит понимаю всё равно с трудом в экселе даты хранятся дд.мм.гггг ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2018, 16:35 |
|
Ошибка в INSERT (не понимает формат даты)
|
|||
---|---|---|---|
#18+
MokeevP Код: vbnet 1. 2. 3.
Даты наипроизвольнейшим образом конвертируются и потом не ищутся первым запросом! А при добавлении случается дубликат В этой строке собака порылась. Не нужно никаких преобразований. Просто присваивайте полю значение ячейки, т.е.: ![pln_date] = tn.Cells(nLne, nCln5) Числовой эквивалент даты/времени в ячейке Excel, таблице Access и в VBA одинаковый. Если вам не нужна составляющая времени, то: ![pln_date] = DateValue(tn.Cells(nLne, nCln5)) А вообще, есть несколько замечаний к коду. 1. Не надо закрывать и снова открывать Recordset, ведь он лежит на одной таблице. Если эта процедура выполняется в цикле по строкам, то его со всеми записями нужно открыть перед циклом и закрыть после. А для каждой стоки выполнять метод FindFirst со строкой поиска, что после where в вашем примере и при св-ве NoMatch = True (не найдена) и других проверках добавлять запись. 2. При конкатенации строки вместо "+" используйте "&", тогда и CStr не нужна. Символ "+" используется в других специальных случаях. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2018, 16:46 |
|
Ошибка в INSERT (не понимает формат даты)
|
|||
---|---|---|---|
#18+
Анатолий ( Киев ) В этой строке собака порылась. Не нужно никаких преобразований. Просто присваивайте полю значение ячейки, т.е.: ![pln_date] = tn.Cells(nLne, nCln5) Числовой эквивалент даты/времени в ячейке Excel, таблице Access и в VBA одинаковый. Небольшое уточнение - то есть даты в Access тоже по-денно посчитаны с 1 января 1900 года как в excel? Анатолий ( Киев )Если вам не нужна составляющая времени, то: ![pln_date] = DateValue(tn.Cells(nLne, nCln5)) cstr(tn.cells(nLne, nCln5)) в помойку и забыть как страшный сон? Меня этот вариант вроде-бы устраивает. Или это криминал? Анатолий ( Киев )1. Не надо закрывать и снова открывать Recordset, ведь он лежит на одной таблице. Если эта процедура выполняется в цикле по строкам, то его со всеми записями нужно открыть перед циклом и закрыть после. А для каждой стоки выполнять метод FindFirst со строкой поиска, что после where в вашем примере и при св-ве NoMatch = True (не найдена) и других проверках добавлять запись. Огромное спасибо за замечания! С конкатенацией учту обязательно (хотя понимания почему нужно делать именно так, а не эдак нет, ну да и хрен с ним!). А вот с recordset`ами беда - я категорически плохо понимаю как это сделать, как с ними работать. Можно ли Вас попросить изобразить принципиальный пример такой конструкции с рекордсетом и условием? Прошу Аще, мне бы, в идеале, ещё и обратную проверку сделать - просмотреть таблицу в Access, сравнить с Excel, чего нет - поставить галочку и название файла, иначе next. Можете помочь? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2018, 17:26 |
|
|
start [/forum/topic.php?fid=45&msg=39608627&tid=1611648]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
53ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
others: | 275ms |
total: | 434ms |
0 / 0 |