2016-07-14 15 views
0

2 테이블 'tbl_Images'및 'tbl_ImagesDetails'가 있습니다. 첫 번째 테이블에는 두 번째 테이블에서 찾을 수없는 ImageID가 있습니다.vb.net을 사용하여 일치하지 않는 레코드를 찾는 쿼리에서 MS Access의 행을 삽입하는 방법

먼저 일치하지 않는 레코드를 찾은 다음 두 번째 테이블에 결과 행을 추가하는 쿼리를 만들었습니다.

Access 2010에서 쿼리를 실행하면 확인 메시지가 표시되고 행이 추가됩니다.

그러나 VB.net에서 실행하면 행이 추가되지 않고 오류 메시지도 표시되지 않습니다. 여기에 코드입니다 :

Dim strsql As String = "INSERT INTO tbl_ImagesDetails (ImageID) 
SELECT tbl_Images.ImageID 
FROM tbl_Images LEFT JOIN tbl_ImagesDetails ON tbl_Images.[ImageID] = tbl_ImagesDetails.[ImageID] 
WHERE (((tbl_Images.ImageID) Like 'ZOOMED*') 
AND ((tbl_ImagesDetails.ImageID) Is Null));"   
'Debug.Print(strsql) 

Dim MyConn As New OleDbConnection(connString) 
Dim cmd As New OleDbCommand(strsql, MyConn) 
cmd.CommandType = CommandType.Text 

If Not MyConn.State = ConnectionState.Open Then MyConn.Open() 

Dim iResult As Integer = cmd.ExecuteNonQuery() 
Return iResult 

쿼리는 위의 9 개 행을 반환해야합니다,하지만 iResult = 0

내 질문 :

  1. 는 확인 대화 상자가 방해 받고 있습니까? 그렇다면 VB 코드를 사용하여 재정의하는 방법은 무엇입니까?

  2. ExecuteNonQuery()는 한 번에 여러 행을 삽입 할 수 있습니까?

  3. 다른 검색어 (즉, 동일한 검색어)의 결과 인 행을 삽입하려면 어떻게해야하나요?

+0

방금 ​​발견 한 것 : Access에서 '보기'(그리드 아이콘이있는 아이콘)와 '실행'(느낌표가있는 아이콘)의 차이가 궁금합니다. 보기를 클릭하면 표가 9 행만 표시됩니다. 느낌표를 클릭하면 행이 추가됩니다. '실행'하도록 VB 코드가 있습니까? – Jnnno

답변

0

1) 확인 대화가 방해가되고 있습니까? 그렇다면 VB 코드를 사용하여 재정의하는 방법은 무엇입니까?

Ans By의 : 당신이 코드를 통해 명령을 실행하는 경우 없음 확인 상자 즉 vb.net

2) ExecuteNonQuery는()가 한 번에 여러 행을 삽입 할 수 있습니까?

Ans By의 : 예

3) 나는 (즉) 같은 쿼리 내에서 다른 쿼리의 결과 행을 삽입 할 수 있습니까?

나는 당신이 결과를 체크 할 필요가 있다고 생각한다. vb.net에서 쿼리에 의해 가져온 레코드는 레코드를 얻지 못할 수도있다. 가져온 레코드를 검사하는 함수를 작성하는 것이 좋습니다. 그렇지 않으면 괜찮아 보인다.

희망이 도움이됩니다.

+0

가져온 레코드를 확인하려면 1) 별도의 쿼리를 실행하거나 2) 기존 쿼리에 다른 명령을 추가하는 것입니까? 두 번째 방법은? 감사. – Jnnno

+0

첫 번째 부분 (선택한 쿼리의 검사 레코드)은 테스트 용입니다. 그 쿼리가 어떤 레코드도 가져 오지 않을 수도 있습니다. MS-Access가 로컬에 없으므로 직접 실제 테스트를 수행 할 수 없습니다. 감사합니다 – Sami

+0

당신이 맞아요. 기록을 반환하지 않습니다. 이제 방책이 어디 있는지 보도록하겠습니다. – Jnnno