数据types不匹配Access 2010

我们一直在使用Access作为后端,Excel作为前端来创buildHR数据库。 当我在Excel中运行我的macros来向MasterTable插入条目时, “数据types不匹配”。 我改变的唯一的领域是“作业”字段,它需要0.0-1.0之间的值(即0.2意味着他们只工作一天)。

以前,当我插入小数位的条目将不会显示,直到我更改Access中的字段types接受小数。 在这个变化之后,这个macros不再起作用。

任何人都可以指出为什么这是?

我只是刚刚开始学习SQL / Access,所以很可能我犯了一个非常基本的错误。

我search了几个其他答案,谈到使用DECIMAL字段,而不是改变属性字段,但是这并没有解决我的问题。 我的代码:

  Sub ExportDataToAccess() Dim cn As Object Dim strQuery As String Dim Id As String Dim Positions As String Dim BU As String Dim Job As Double Dim Variance As String Dim myDB As String 'Initialize Variables Id = Worksheets("test").Range("A2").Value Positions = Worksheets("test").Range("B2").Value BU = Worksheets("test").Range("C2").Value Job = Worksheets("test").Range("D2").Value myDB = "X:\Users\ADMIN\Documents\HR_Establishment_DB1.accdb" Set cn = CreateObject("ADODB.Connection") With cn .Provider = "Microsoft.ACE.OLEDB.12.0" 'For *.ACCDB Databases .ConnectionString = myDB 'Connects to my DB .Open End With strQuery = "INSERT INTO MasterTable ([Id], [Positions], [BU], [Job]) " & _ "VALUES (""" & Id & """, """ & Positions & """, """ & BU & """, " & Job & "); " cn.Execute strQuery cn.Close Set cn = Nothing End Sub 

Excel快照 访问结构

你打算从excel中获得ID的值( Id = Worksheets("test").Range("A2").Value )?

我认为这是造成错误。 如果访问的字段为自动编号数据types,则不必将其包含在INSERT查询中,因为访问会以增量方式自动为其分配值。

如果你想访问自动分配一个ID值,改变这个:

  strQuery = "INSERT INTO MasterTable ([Id], [Positions], [BU], [Job]) " & _ "VALUES (""" & Id & """, """ & Positions & """, """ & BU & """, " & Job & "); " 

对此:

  strQuery = "INSERT INTO MasterTable ([Positions], [BU], [Job]) " & _ "VALUES (""" & Positions & """, """ & BU & """, " & Job & "); "