2009-11-21 13 views
3

VB 액세스에서 백엔드로 액세스 할 수있는 VB.NET이 하나 있습니다 ... 테이블에 데이터를 삽입하는 동안 쿼리 및 데이터 형식 오류에는 오류가 발생하지 않지만 언젠가 OleDB 예외가 발생합니다. 오류는 " 조건 식의 데이터 형식이 일치하지 않습니다. " 쿼리는 OleDbException가 발생할 때 CMDSTR의 값의 예를 게시 할 수 있습니다, u 또는 누군가가 나에게이 문제를 해결하는 데 도움이 될 수 있습니다 그래서 ....조건 식의 데이터 형식이 일치하지 않습니다.

Dim cmdstr1 As String = "" 
     Dim constr As String = "" 
      Dim sqlQuery As String = "" 
     constr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\PhoneDiary\MyDiary.mdb" 

cmdstr = "Insert Into [DetailData]([ShortName],[Title],[FirstName],[MiddleName],[LastName],[Occupation],[DOB],[Gender],[Country],[State],[Address],[ZipCode],[City],[Memo],[CategoryId],[SubCategoryId],[FavouritesID],[PhotoPath],[vCardPath]) VALUES(aa,bb,cc,dd,ee,ff,gg,hh,ii,jj,kk,ll,mm,nn,oo,pp,qq,rr,ss)" 

    con = New OleDbConnection(constr) 
    com = New OleDbCommand(cmdstr, con) 
    con.Open() 
com.Parameters.AddWithValue("aa", xx) 
com.Parameters.AddWithValue("bb", cmbTitle.Text) 
com.Parameters.AddWithValue..... 
com.Parameters.AddWithValue.... 
..................... 
...... 
com.ExecuteNonQuery()-------"Data type mismatch in criteria expression" Here occurs Error 

영업으로

+0

입력 한 필드 중 하나가 Access의 형식이 잘못되었습니다. 오류가 발생했을 때 삽입 된 값과 테이블 구조가 삽입 된 값에 대해 좀 더 자세히 설명해야합니다. –

답변

5

하십시오이다 ? 나는 mqbt가 맞다고 의심하고 DOB 필드가 DateTime이 제공하는 포맷을 구문 분석 할 수 없다는 것입니다.

이와 관련하여 OleDbCommand.Parameters.AddWithValue를 사용하여 SQL 문자열의 매개 변수를이 방법으로 변경하는 것이 좋습니다.

저는 항상 문자열을 매개 변수와 연결하여 Docmd.RunSql()으로 실행함으로써 VBA 액세스에 SQL 문자열을 작성했습니다.이 매개 변수는 수십 개의 매개 변수가있는 긴 SQL 문자열을 빨아들이는 것처럼 보입니다. 그러나 매개 변수와 유형을 보는 것은 간단합니다. 내가 잘못 했니?

0

불일치 오류를 자세하게 표현하고 문제가 발생한 부분 (데이터 유형)을 해결하는 데 도움이됩니다. 그렇지 않은 경우 오류 메시지 상자에서 오류를 자세히 확인할 수 있습니다.

관련 문제