2012-10-22 3 views
1

이 Access 2002 데이터베이스 작업 중입니다. SQL Server 2008에 연결된 서버를 사용합니다. DLookup을 수행하고 날짜를 확인하는 기본 폼로드시 문제가 발생합니다.Access 2002에서 Access 2010으로 문자열에서 날짜 및/또는 시간을 변환 할 때 변환하지 못했습니다.

EndDate = Nz(DLookup("End_Date", "Employee", "EmpID= " & EmpID & " AND End_Date IS NOT NULL AND End_Date < #" & Now & "#"), "") 

지금이 Access 2002에서 잘 작동하지만 액세스 2010 년에 내가 얻을 : 문자열에서 날짜 및/또는 시간을 변환 할 때 변환이 실패

여기 키커는하지만, 그것은 액세스 2010 년 작품이다 한 사용자에게 : 나 자신. 다른 사용자는 Windows 7 및 Access 2010 Runtime을 사용하여 잘 작동하며 다른 설치는 정상적으로 작동합니다. 동일한 컴퓨터에서 MDB도 올바르게 작동합니다. 파운드 기호를 SQL Server와 같은 작은 따옴표로 바꾸면 2010 컴퓨터에서 제대로 실행되지만 더 이상 2002 (duh)에서는 작동하지 않습니다.

방금 ​​내 뇌를 부수고 정상적으로 모든 Office를 제거한 다음 다시 설치하고 Access Runtime 용 SP1이 마지막에 설치되었는지 확인하여 작동시킬 수있었습니다.

답변

2

Now()의 값을 DLookup의 문자열로 변환하는 대신 db 엔진이 Now()을 스스로 결정하도록하십시오. 접근 방식은 다시 날짜/시간 및 문자열 사이의 변환에 의존하지 않는, 그래서 당신이보고 된 문제를 방지 것이다

EndDate = Nz(DLookup("End_Date", "Employee", _ 
"EmpID= " & EmpID & " AND End_Date IS NOT NULL AND End_Date < Now()"), "") 

. 당신이 원래 DLookup 다른 결과를 제공하는 방법을 검토 다른 컴퓨터에서이 같은 시도 할 경우

: 직접 실행 창으로 이동, 그 코드를 실행 한 후

Dim strCriteria As String 
strCriteria = "EmpID= " & EmpID & " AND End_Date IS NOT NULL" & _ 
    " AND End_Date < #" & Now & "#" 
Debug.Print "strCriteria: " & strCriteria 
EndDate = Nz(DLookup("End_Date", "Employee", strCriteria), "") 

을 (CRTL + g) strCriteria의 값을 검사하십시오.

+0

이렇게하면 처음 문제가 발생합니다. 하지만 형식에 대한 오류가 발생합니다. 나는 레퍼런스가 엉망이 된 느낌이 든다. 실행하려고하는 MDE이며 터미널 서버에서 Access 2010 런타임입니다. 다시 흥미로운 점은 내 프로필, 터미널 서버에서 작동하지만 다른 사람의 프로필에서는 작동하지 않는다는 것입니다. 참조가 어떻게 든 프로파일에 다시 링크 될 수 있습니까? – bigphildogg86

+0

나는 혼란 스럽다. 당신이 여전히 ""AND End_Date HansUp

+0

이것이 초기 문제 였고 현재 해결 된 경우 현재 문제에 대한 세부 정보를 제공해주십시오. 미안 해요, 여기 잃었어요. :-( – HansUp

0

SQL Server에서 사용중인 날짜/시간 필드 유형에 따라 버전간에 차이가있을 수있는 문제가 발생할 수 있습니다.

액세스 2010은 SQL Server 2008의 추가 된 네 개의 새 날짜/시간 데이터 형식 에 대한 제한적인 지원을 제공합니다

시간
DATE
DATETIME2
DATETIMEOFFSET

- http://office.microsoft.com/en-us/access-help/create-an-access-project-HA010341589.aspx#_Toc257281378

데이터 형식을 "Date"또는 "Date2"로 변경하는 경우 SQL 서버 2008R2의 데이터 데이터를 97에 액세스 할 때이 문제가 발생했습니다. 액세스가 표시되지 않았습니다. 텍스트

처럼

을 처리 한 날짜로와 - 제쳐두고 MS-Access front-end does not recognise dates from SQL Server

을, 다른 기준을 추가하면 특별히을 포함하지 않는 End_Date IS NOT NULL를 들어, null 값이 제외됩니다 필요가 없습니다.

관련 문제