快速,持续,稳定,傻瓜式
支持Mysql,Sqlserver数据同步

EXCEL操作数据库表,自动判断字段类型,批量添加数据到数据库表

请联系QQ:1793040 索取软件

使用SQL语句添加数据时,不同的字段类型要求不同,字符类型要求应用单引号引起来,数字是多少类型无需添加,日期和时间类型后面必须带有井号\ quot;#\ quot ;,如果不按要求编写语句,则会出现错误。添加数据时,有必要弄清楚每个字段的类型,很容易出错,所以我研究了字段类型的自动检测,然后根据不同的类型对每个字段使用了不同的写入方法,经过测试,可以正常运行,对不同的数据进行测试,并在此记录下来以备将来查询。希望对其他朋友有所帮助。

专用子CommandButton4_Click()

将aimrange作为范围”将范围对象变量定义为选择数据以被添加到数据库表中

Dim myTable As String”定义数据表名称变量

“选择要添加到数据库表中的数据,区域大小类型必须相同

arrrange = Application.InputBox(\ quot;选择要添加或更新到连接的数据表中的区域的内容。添加或更新\ quot; ,,,,, 8)

“建立数据库连接

设置cnn =新ADODB.Connection

With cnn

。提供程序= \ quot; microsoft.ace.oledb.12.0 \ quot;

。打开fileToOpen

结尾为

” fileToOpen是数据路径变量,在此示例中,fileToOpen是全局变量,并且数据库的文件路径已通过其他形式的控件获得,可以根据实际情况修改为您自己的数据库路径。 bjh-p”> myTable =数据表名称.Text”从表单上名为”数据表名称”的文本框中获取数据表名称,您可以使用其他方法指定数据表名称

Dim i作为整数,j作为整数,sql作为字符串,tbrow作为整数,col作为整数

“因为要求所有字段都不相同,所以它们将作为新数据添加到数据表中,也就是说,完全不同的数据将被视为新数据,因此不适合更新数据,仅用于新数据。如果要更新数据,则只需指定条件。

” FOR的下两层,FOR的最外层是选择要添加的区域。行数是循环数。如果选择几行,它将循环几次。内部的FOR是循环字段(列)的数量。有几列循环多次。第一次是单独指定的,而不是在FOR循环中指定的。

“在这种情况下,以下zdtype数组变量是全局变量,已经在其他控件上获取并保存了字段类型。类型返回值是一个数字值,并根据该数字值判断相应的类型,获取字段名称和字段类型的方法可以在我的其他共享文章中查看。

对于i = 1到UBound(排列)

选择大小写zdtype(0)” adtype(0 )对应于第一个字段的类型

案例2至5、14至21

sql = \ quot;从*中选择* \ myTable \ quot;其中[\ quot; \ arr(0)\ quot;] = \ quot; \ arrrange(i,1)

Case 7,64,133,134,135

sql = \ quot;从*中选择* \ myTable \ quot;其中[\ quot; \ arr(0)\ quot;] =#\ quot; \ arrrange(i,1)\ quot; #\ quot;

其他情况:

sql = \ quot ;从*中选择* \ myTable \ quot;其中[\ quot; \ arr(0)\ quot;] =” \ quot; \ arrrange(i,1)\ \ quot;” \ quot;

结束选择

“上面是第一个SQL语句的一部分加上第一个字段。

“下面的FOR语句自动将第二个字段之后的所有字段连接到a的后半部分根据字段类型完成的SQL语句语句的上一部分在

对于col = 1到UBound(arr)-1

选择案例zdtype(col)” zdtype(col)代表倒数第二个字段的类型

案例2至5、14至21

sql = sql \ \ quot;和[ \ quot; \ arr(col)\ \ quot;] = \ quot; \ arrrange(i,col +1)

Case 7,64,133,134,135

sql = sql \ \ quot;和[ \ quot; \ arr(col)\ quot;] =#\ quot; \ arrrange(i,col + 1)\ #\ quot;

“如果将字段类型检测为时间和日期类型,请在字段#之前和之后添加井号。/p>

其他情况:

sql = sql \ \ quot;和[\ quot \ arr(col)\ \ quot;] =” \ quot; \ arrrange(i,col + 1)\ ” \ quot;

“如果将字段类型检测为字符类型,请使用单引号”将其括起来

结束选择

下一个

设置rs =新ADODB.Recordset

rs.Open sql,cnn,adOpenKeyset,adLockOptimistic

” adOpenKeyset参数使用键集游标。尽管您无法访问其他用户从记录集中删除的记录,但它与动态游标类似,不同之处在于您无法查看其他用户添加的记录。其他用户所做的数据更改仍然可见。

” adLockOptimistic参数”在更新数据源时,系统不会锁定其他用户的操作,其他用户可以添加,删除,更改操作。

如果rs.RecordCount = 0则

“如果数据表中的数据找不到与所选区域完全相同的数据,则将其作为新数据添加到数据库表中

rs.AddNew

对于j = 1到rs.Fields.Count

rs.Fields(j-1)= arrrange(i,j)

下一个j

rs.Update

其他

msgbox \ quot;没有新数据\ quot;

如果结束

下一个

rs.Close

cnn.Close

Set rs = Nothing

设置cnn =否

End Sub

相关推荐

咨询软件
 
QQ在线咨询
售前咨询热线
QQ1793040