2015-04-06 3 views
0

Может кто-нибудь помочь мне с моим кодом ниже. Я пытаюсь подтолкнуть пользователя к дате, а затем выполнить поиск по этой дате в таблице. В таблице, которую я запрашиваю, есть формат даты, но я хочу, чтобы иметь возможность искать только по дате. я могу получить пользовательский ввод, но затем я получаю ошибку «синтаксическую ошибку (отсутствующий оператор) в выражении запросаVBA поиск по дате в функции доступа

Function cmdInputBox_Click() 
    Dim DatePick As Date 
    DatePick = InputBox("Enter Date:", "Date", Format(Now(), "dd/mm/yy")) 

    Dim strSQL As String 


    strSQL = " INSERT INTO PalletMoves " _ 
     & "SELECT [Pick Area].[From Location], [Pick Area].[Game Number], [Pick Area].[Pallet Number], [Pick Area].[Game Name], [Pick Area].[Shipment Number], [Pick Area].[Box Range], [Pick Area].Cases, [Pick Area].Packs, [Pick Area].Tickets, [Pick Area].[Price Point], [Pick Area].[Delivery Date], [Pick Area].Skids, [Pick Area].[Created Date] " _ 
     & "FROM [Pick Area] " _ 
     & "WHERE CAST([Created Date] AS Date) dateDate = '" & DatePick & "';" 
DoCmd.RunSQL strSQL 

End Function 

ответ

1

где положение должно выглядеть следующим образом:.

"WHERE [Created Date] = #" & DatePick & "#;" 

Больше на : https://support.office.com/en-us/article/Examples-of-using-dates-as-criteria-in-Access-queries-aea83b3b-46eb-43dd-8689-5fc961f21762

Примечание:.!. я должен предупредить вас, когда пользователь удалить строку по умолчанию и нажмите кнопку Cancel, InputBox функция возвращает пустую строку вы должны проверить его, прежде чем выполнить дальнейший код (запрос)

+0

Большое спасибо за ответ. Я внес изменения, однако мне все равно нужно вводить точное значение даты и времени, например, 4/4/2015 5:13:47 PM при поиске или не вернет никаких результатов. Как я могу написать его так, чтобы все, что мне нужно было ввести, было 4/4/2015? Спасибо – user4755977

+0

Итак ... почему вы конвертируете дату в свою короткую форму (только дата)? –

+0

Прошу прощения, я не уверен, если я буду чист ... Я бы хотел поискать по короткой дате, но теперь это работает, только если я ищу по дате и времени. Я думаю, что мое преобразование не работает. – user4755977

0

Необходимо использовать значение даты внутри # при использовании его в качестве критерия в запросах MS Access.

strSQL = " INSERT INTO PalletMoves " _ 
     & "SELECT [Pick Area].[From Location], [Pick Area].[Game Number], [Pick Area].[Pallet Number], [Pick Area].[Game Name], [Pick Area].[Shipment Number], [Pick Area].[Box Range], [Pick Area].Cases, [Pick Area].Packs, [Pick Area].Tickets, [Pick Area].[Price Point], [Pick Area].[Delivery Date], [Pick Area].Skids, [Pick Area].[Created Date] " _ 
     & "FROM [Pick Area] " _ 
     & "WHERE [Created Date] = #" & DatePick & "#;" 

Больше читайте здесь: https://support.office.com/en-us/article/Examples-of-using-dates-as-criteria-in-Access-queries-aea83b3b-46eb-43dd-8689-5fc961f21762

Смежные вопросы