powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Проблема с date в VBA
25 сообщений из 76, страница 2 из 4
Проблема с date в VBA
    #37971391
alvk.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
askerliа вы о чем подумали?

о том, что я не ТС. и решение я уже написал выше.
...
Рейтинг: 0 / 0
Проблема с date в VBA
    #37971398
askerli
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alvk.,

прошу прощения, только сейчас заметил, что не правильно указал адресата. обращался я конечно же к ТС.
...
Рейтинг: 0 / 0
Проблема с date в VBA
    #37971407
Автор123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Анатолий ( Киев )Автор123DoCmd.RunSQL "UPDATE бд SET бд.Прим2 = DSum('[Количество]','[бдп]','[бдп]![Внутренний заказДата]=#" & Format([бд]![Внутренний заказДата], "mm\/dd\/yyyy") & "#') WHERE (((бд.Количество)=1));"

Чтоб наглядно увидеть проблему со строкой, вместо DoCmd.RunSQL сделайте Debug.Print, посмотрите как готовая строка выглядит в окне отладки и покажите нам. По меньшей мере апостроф после второй решетки надо убрать, а сразу после 1-й - добавить.
Убрал и добавил - эффекта нет.
Вместо DoCmd.RunSQL вставил Debug.Print - выходит та же ошибка. Не подскажите как посмотреть готовую строку в окне отладке (это Immediate как я понял?).
...
Рейтинг: 0 / 0
Проблема с date в VBA
    #37971413
Автор123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alvk.askerliа вы о чем подумали?

решение я уже написал выше.
Т.е. в VBA это может и не работать, и искать ошибку не имеет смысла?
...
Рейтинг: 0 / 0
Проблема с date в VBA
    #37971414
askerli
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Автор123,

думаю, вба просто не в курсе, что такое
Код: plaintext
[бд]![Внутренний заказДата]
в выражении функции Format вам надо в коде предварительно найти значение подставляемого поля в виде даты, присвоить ее переменной, а потом ее вставить в скл-строку.
...
Рейтинг: 0 / 0
Проблема с date в VBA
    #37971458
alvk.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
askerli,

да и dsum() нафиг не нужен.
...
Рейтинг: 0 / 0
Проблема с date в VBA
    #37971467
askerli
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alvk.askerli,

да и dsum() нафиг не нужен.

откровенно говоря, и сам вба нафиг не нужен, если там нет ни одной формы и только 2 таблицы
...
Рейтинг: 0 / 0
Проблема с date в VBA
    #37971483
askerli, видимо будет быстрее, если выложите пример БД (в формате MDB) с этими таблицами и модулем.
...
Рейтинг: 0 / 0
Проблема с date в VBA
    #37971487
askerli
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Анатолий ( Киев )askerli, видимо будет быстрее, если выложите пример БД (в формате MDB) с этими таблицами и модулем.
кажется, на этом топике все ошибаются с адресатами я не ТС
...
Рейтинг: 0 / 0
Проблема с date в VBA
    #37971522
Автор123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кому интересно прилагаю аналогичный пример базы данных 2007 - 2 таблицы по 2 строчки и vba не работает. Видимо дело в версиях.
...
Рейтинг: 0 / 0
Проблема с date в VBA
    #37971526
Автор123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пример
...
Рейтинг: 0 / 0
Проблема с date в VBA
    #37971566
askerli
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
DoCmd.RunSQL "UPDATE [Т2] SET [Т2].[Текст] = DLookUp('[Число]','[Т1]','[Т1]![Дата1]=#' & Format([Т2]![Дата2], 'mm\/dd\/yyyy') & '#');"


вроде так работает
...
Рейтинг: 0 / 0
Проблема с date в VBA
    #37971593
Автор123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
askerli
Код: sql
1.
DoCmd.RunSQL "UPDATE [Т2] SET [Т2].[Текст] = DLookUp('[Число]','[Т1]','[Т1]![Дата1]=#' & Format([Т2]![Дата2], 'mm\/dd\/yyyy') & '#');"


вроде так работает
Огромное спасибо! Действительно замена ' на " решает проблему, непонятно только почему не сработало раньше, то ли очепятался где-то, то ли сжатие помогло. Как всегда ларчик открывался просто.
...
Рейтинг: 0 / 0
Проблема с date в VBA
    #37971609
askerli
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Автор123Действительно замена ' на " решает проблему
об этом я писал еще в самом первом своем посте. верно говорят: лучше 1 раз пощупать, чем 100 раз услышать
...
Рейтинг: 0 / 0
Проблема с date в VBA
    #38111140
Леонид Г
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, может кто знает в чем проблема.
Есть запрос с параметрами в Access , значение параметра формируется
из элемента DTPicker:
Dim cmd As ADODB.Command, cmd1 As ADODB.Command
Dim par As ADODB.Parameter, par1 As ADODB.Parameter
Set cmd = CreateObject("ADODB.Command")
Set par = cmd.CreateParameter("@date_n", adDBDate, adParamInput, , DTPicker9.Value)
Set par1 = cmd.CreateParameter("@date_k", adDBDate, adParamInput, , DTPicker0.Value)
cmd.Parameters.Append par
cmd.Parameters.Append par1

Однако в результате выполнения запроса путем экспериментов получается, что правильно он выполняется , только если в DTPicker9 поменять местами в дате день и месяц.
Запрос примерно такой strQry = "SELECT DISTINCTROW Sum(osn.Prop_gr).....
& "Where osn.Punkt_p=1 and osn.Data_zm>=@date_n and osn.Data_zm_k<=@date_k"

Заранее благодарю всех, кто откликнется.
...
Рейтинг: 0 / 0
Проблема с date в VBA
    #38111219
Фотография ILL HEAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
формат американской даты - месяц день год
...
Рейтинг: 0 / 0
Проблема с date в VBA
    #38111224
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Леонид Г
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
Dim cmd As ADODB.Command, cmd1 As ADODB.Command
Dim par As ADODB.Parameter, par1 As ADODB.Parameter
Set cmd = CreateObject("ADODB.Command")
Set par = cmd.CreateParameter("@date_n", adDBDate, adParamInput, , DTPicker9.Value)
Set par1 = cmd.CreateParameter("@date_k", adDBDate, adParamInput, , DTPicker0.Value)
cmd.Parameters.Append par
cmd.Parameters.Append par1



а почему вы выбрали такой тип ?
вот с этим - adDate - как будет ?
...
Рейтинг: 0 / 0
Проблема с date в VBA
    #38111292
Леонид Г
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
qwerty112,
с adDate-отлично! Спасибо огромное!
...
Рейтинг: 0 / 0
Проблема с date в VBA
    #38111299
?????
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А вот интересно
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Sub test_ADOdate_param()
    Dim p As New ADODB.Parameter
    Dim con As New ADODB.Connection
    Dim c As New ADODB.Command
    Dim s$
    
    s = "select datediff(dd,cast(0 as datetime),getdate())"
    con.Open "Строка подключения к МС СКЛ"
    Debug.Print con.Execute(s)(0)
    
    p.Type = adDate
    p.Value = 0
    s = "select datediff(dd,cast(? as datetime),getdate())"
    c.CommandType = adCmdText
    c.CommandText = s
    c.ActiveConnection = con
    c.Parameters.Append p
    Debug.Print c.Execute()(0)
    
    Set c = Nothing
    Set p = Nothing
    con.Close: Set con = Nothing
End Sub


Код: vbnet
1.
2.
 41287 
 41289 
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Проблема с date в VBA
    #39754758
Фотография Rikozenit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как быть, если поле с датой может оказаться незаполненным?
При выполнении команды sql на копирование строки с такими полями (Финиш_компл_пл is null) - возникают ошибки, так как в поле с форматом данных ДАТА невозможно вставить значение NULL:
Код: vbnet
1.
2.
CurrentProject.Connection.Execute "INSERT INTO Онлайн (Финиш_компл_пл)" _
& "VALUES (#' & Format(Финиш_компл_пл, 'mm\/dd\/yyyy') & '#);"
...
Рейтинг: 0 / 0
Проблема с date в VBA
    #39754773
Фотография Tarasios
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RikozenitА как быть, если поле с датой может оказаться незаполненным?
При выполнении команды sql на копирование строки с такими полями (Финиш_компл_пл is null) - возникают ошибки, так как в поле с форматом данных ДАТА невозможно вставить значение NULL:
Код: vbnet
1.
2.
CurrentProject.Connection.Execute "INSERT INTO Онлайн (Финиш_компл_пл)" _
& "VALUES (#' & Format(Финиш_компл_пл, 'mm\/dd\/yyyy') & '#);"


Возможно, я не совсем понял вашу задачу - но в таких случаях я бы сделал предварительную проверку на заполненность поля. И далее - уже по желанию, например - либо просто тормознуть операцию, либо вставить в пустые поля некие значения по умолчанию.
...
Рейтинг: 0 / 0
Проблема с date в VBA
    #39754809
Swa111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Rikozenit,

Null вставлять можно, у Вас в случае Null в строке получается не корректный запрос

И вообще запрос у Вас какой то странный....

Код: vbnet
1.
2.
CurrentProject.Connection.Execute "INSERT INTO Онлайн (Финиш_компл_пл)" _
& "VALUES (" & iif(isNull(Финиш_компл_пл, " Null ", "#" & Format(Финиш_компл_пл, "mm\/dd\/yyyy") & "#") & ");"
...
Рейтинг: 0 / 0
Проблема с date в VBA
    #39754880
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rikozenit,
А так:
Код: vbnet
1.
2.
3.
Dim a
a = "#" & Format(Me.ctl, "mm\/dd\/yyyy") & "#"
CurrentDb.Execute "insert into tbl1(ctl1) values (" & a & ")"
...
Рейтинг: 0 / 0
Проблема с date в VBA
    #39754890
Swa111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku,

Format(Me.ctl, "mm\/dd\/yyyy") от null вернут пустую строку в итоге в переменной "a" будет "##". результирующий запрос = "insert into tbl1(ctl1) values (##)", а это уже синтаксическая ошибка
...
Рейтинг: 0 / 0
Проблема с date в VBA
    #39754939
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вам предложен работоспособный вариант и сделать так,как показано ниже, Вам не позволяет религия,да?
А какое значение Вы хотите записать при пустом поле в поле дата? если таблица-приемник содержит одно единственное поле-дата (что оченьоченьочень маловероятно),то добавить запись с пустым полем даты Вам удастся только рекордсетом-может я ошибаюсь-форумчане поправят
Код: vbnet
1.
2.
3.
4.
5.
If IsNull(Me.ctl) Then
Exit Sub  ' или,например, дата #1/1/1# 
Else
a = "#" & Format(Me.ctl, "mm\/dd\/yyyy") & "#"
End If
...
Рейтинг: 0 / 0
25 сообщений из 76, страница 2 из 4
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Проблема с date в VBA
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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