|
|
|
Работа с фоматом времени в поле базы.
|
|||
|---|---|---|---|
|
#18+
Люди, помогите! Есть таккая проблема. Есть база, созданная в Access через Visual Data Manager. Несколько полей этой базы имеют содержимое дату (записывается пользователем). Но для некоторых записей это поле должно быть пустым, но пустое значение Бейсик не пишет в базу, а выдает ошибку. Можно конечно создать поле формата не Date/Time, а Text, но тогда не будет работать сортировка по полю, где содержится дата. Как выпутаться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2002, 07:45 |
|
||
|
Работа с фоматом времени в поле базы.
|
|||
|---|---|---|---|
|
#18+
Повеситься. ;) тема 2002 года - ну помогите чуваку... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2007, 12:26 |
|
||
|
Работа с фоматом времени в поле базы.
|
|||
|---|---|---|---|
|
#18+
А NULL использовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2007, 12:36 |
|
||
|
Работа с фоматом времени в поле базы.
|
|||
|---|---|---|---|
|
#18+
Столкнулся с такой же проблемой. Если в Text1.Text записать дату вида dd.MM.yyyy то запрос выполняется успешно, а если Text1.Text пустое то ошибка. CDate, Format не помогают, Null тоже не проходить. Неделю лазею на форуме и вообще по нету ответа так и не нашел. Буду рад любой помощи. Вот один из вариантов моего запроса soedin.Execute "insert into Svodn (Дата_рождения, KeyF, KeyD, KeyM) " & _ "values (#" & txtRojd.Text & "#, '" & fio & "', '" & dol & "', '" & mest & "')" rstsvod.Requery ' Дата_рождения - поле формата Дата/время в Access ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2007, 14:01 |
|
||
|
Работа с фоматом времени в поле базы.
|
|||
|---|---|---|---|
|
#18+
А если перед выполнением твоего запроса проверять пустое поля с датой или нет??? Если есть данные то запрос Код: plaintext 1. Код: plaintext 1. 2. Вот и все. С уважением, Николай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2007, 14:15 |
|
||
|
Работа с фоматом времени в поле базы.
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2007, 14:19 |
|
||
|
Работа с фоматом времени в поле базы.
|
|||
|---|---|---|---|
|
#18+
дата может водится, а может и не вводиться Dim dat As Variant If txtRojd.Text = "" Then dat = CDate(txtRojd.Text) dat = Format(dat, "dd.mm.yyyy") Else dat = txtRojd.Text End If ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2007, 14:22 |
|
||
|
Работа с фоматом времени в поле базы.
|
|||
|---|---|---|---|
|
#18+
У меня четыре таких поля Дата\Время в Access И как сделать параметризованный запрос?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2007, 14:35 |
|
||
|
Работа с фоматом времени в поле базы.
|
|||
|---|---|---|---|
|
#18+
написать функцию которая приобразует дату в строку с датой или в NULL и использовать при подстановке в запрос. Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2007, 18:06 |
|
||
|
Работа с фоматом времени в поле базы.
|
|||
|---|---|---|---|
|
#18+
Я еще зеленый (мало знаю VB), поэтому можно по подробней! что за функция Date2NULL("text") и вообще у меня поля Дата\Время значение Null не воспринимают. При Dim dat1 As Variant dat1 = Null soedin.Execute "insert into Svodn (Дата_рождения, KeyF, KeyD, KeyM) " & _ "values (#" & dat1 & "#, '" & fio & "', '" & dol & "', '" & mest & "')" пишет: дата содержит синтаксическую ошибку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2007, 04:45 |
|
||
|
Работа с фоматом времени в поле базы.
|
|||
|---|---|---|---|
|
#18+
AppixЯ еще зеленый (мало знаю VB), поэтому можно по подробней! что за функция Date2NULL("text") и вообще у меня поля Дата\Время значение Null не воспринимают. При Dim dat1 As Variant dat1 = Null soedin.Execute "insert into Svodn (Дата_рождения, KeyF, KeyD, KeyM) " & _ "values (#" & dat1 & "#, '" & fio & "', '" & dol & "', '" & mest & "')" пишет: дата содержит синтаксическую ошибку Для работы с датами лучше использовать DTPicker а в твоем случае попробуй это Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2007, 09:11 |
|
||
|
Работа с фоматом времени в поле базы.
|
|||
|---|---|---|---|
|
#18+
AppixЯ еще зеленый (мало знаю VB), поэтому можно по подробней! что за функция Date2NULL("text") и вообще у меня поля Дата\Время значение Null не воспринимают. При Dim dat1 As Variant dat1 = Null soedin.Execute "insert into Svodn (Дата_рождения, KeyF, KeyD, KeyM) " & _ "values (#" & dat1 & "#, '" & fio & "', '" & dol & "', '" & mest & "')" пишет: дата содержит синтаксическую ошибку Для NULL не нужны решетки, отсюда и ошибка. Функцию Date2NULL нужно написать самому. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2007, 09:46 |
|
||
|
Работа с фоматом времени в поле базы.
|
|||
|---|---|---|---|
|
#18+
Так как у меня несколько полей вида Дата\Время, то перебирать их все накладно (т.е. в какие данные ввели, а в какие нет) Пришел к такому решению: If IsDate(txtRojd.Text) = True Then dat1 = CDate(txtRojd.Text) Else dat1 = IsDate(Nothing) 'здесь почему-то в поле вставляется "0:00:00" , я не понял? End If soedin.Execute "insert into Svodn (Дата_рождения, KeyF, KeyD, KeyM) " & _ "values ('" & dat1 & "', '" & fio & "', '" & dol & "', '" & mest & "')" rstsvod.Requery За тем пробегаюсь по всем строчкам в поле Дата_рождения, меняю 0:00:00 на Null rstob.Open ("select Svodn.Дата_рождения From Svodn where Дата_рождения=#0:00:00#"), soedin, adOpenStatic, adLockOptimistic If rstob.RecordCount > 0 Then soedin.Execute "update Svodn Set Дата_рождения=Null Where Дата_рождения=#0:00:00#" rstob.Requery End If Наверно можно как-нибудь это проще сделать, но это работает. Спасибо за помощь, сам бы не догнал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2007, 19:20 |
|
||
|
Работа с фоматом времени в поле базы.
|
|||
|---|---|---|---|
|
#18+
Appix Код: plaintext 1. 2. 3. 4. 5. Зачем в случае если не дата присваивать IsDate(Nothing) ? Функция вернет ЛОЖЬ, потом она преобразуется к дате (нулевой). Отсюда и Ваше "0:00:00" Вы делаете примерно то, что я советовал Вам сделать функцией. Только отойдите от типа дата, оперируйте строкой. Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2007, 10:11 |
|
||
|
Работа с фоматом времени в поле базы.
|
|||
|---|---|---|---|
|
#18+
AppixЗа тем пробегаюсь по всем строчкам в поле Дата_рождения, меняю 0:00:00 на Null rstob.Open ("select Svodn.Дата_рождения From Svodn where Дата_рождения=#0:00:00#"), soedin, adOpenStatic, adLockOptimistic If rstob.RecordCount > 0 Then soedin.Execute "update Svodn Set Дата_рождения=Null Where Дата_рождения=#0:00:00#" rstob.Requery End If Открою секрет, одна строка Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2007, 10:15 |
|
||
|
Работа с фоматом времени в поле базы.
|
|||
|---|---|---|---|
|
#18+
DIM dat1 as String If IsDate(txtRojd.Text) = True Then dat1 = CDate(txtRojd.Text) Else dat1 = "Null" ' выдает ошибку: "Несоответствие типов данных в выражении условия отбора" End If За совет с update спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2007, 15:08 |
|
||
|
Работа с фоматом времени в поле базы.
|
|||
|---|---|---|---|
|
#18+
Ошибку выдает при NULL? Или при каком-то значении? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2007, 16:19 |
|
||
|
Работа с фоматом времени в поле базы.
|
|||
|---|---|---|---|
|
#18+
Когда txtRojd.Text пустое поле ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2007, 17:29 |
|
||
|
Работа с фоматом времени в поле базы.
|
|||
|---|---|---|---|
|
#18+
А приведите строку, которая подставляется в soedin.Execute (не код, а уже конечную строку) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2007, 18:37 |
|
||
|
Работа с фоматом времени в поле базы.
|
|||
|---|---|---|---|
|
#18+
А в самой аксесовской таблице разрешено в эти поля записывать пустое значение?? параметр "Обязательное поле" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2007, 12:37 |
|
||
|
Работа с фоматом времени в поле базы.
|
|||
|---|---|---|---|
|
#18+
Судя по тому, что выполняется запрос на обнуления поля, должно быть разрешено. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2007, 13:46 |
|
||
|
Работа с фоматом времени в поле базы.
|
|||
|---|---|---|---|
|
#18+
Вот так выглядет моя конечная строка плюс еще несколько полей, но проблемма не вних. soedin.Execute "insert into Svodn (Дата_рождения, KeyF, KeyD, KeyM) " & _ "values ('" & dat1 & "', '" & fio & "', '" & dol & "', '" & mest & "') Сам так и не смог разобраться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2007, 17:45 |
|
||
|
Работа с фоматом времени в поле базы.
|
|||
|---|---|---|---|
|
#18+
Это конечный код. А какая будет строка, если выполнить Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2007, 18:55 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=34751757&tid=2163519]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
167ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 244ms |
| total: | 506ms |

| 0 / 0 |
