达到理想要求追加50—100分
求大神解决,能修改的就帮忙修改下
最好大神能为在下编写一个
最好能实现EXCEL表与SQL数据库实现数据同步 随便那一边的数据更改另一边的数据页跟随改动 加则加 少则少 变则变
如果不行 能实现自动把数据备份至SQL就行 就是 加则加
表名称:汇总记录页
SQL: 192.168.1.20
数据库:master
账号: sa
密码: tiger
下面是在下网上搜来的,提示“下标越界”
Sub 导入数据()
Dim i As Integer, j As Integer, sht As Worksheet 'i,j为整数变量;sht 为excel工作表对象变量,指向某一工作表
Dim cn As New ADODB.Connection '定义数据链接对象 ,保存连接数据库信息;请先添加ADO引用
Dim rs As New ADODB.Recordset '定义记录集对象,保存数据表
Dim strCn As String, strSQL As String '字符串变量
strCn = "Provider=sqloledb;Server=192.168.1.20;Database=master;Uid=sa;Pwd=tiger;" '定义数据库链接字符串
rs.CursorLocation = 3
strSQL = "select * from 汇总记录页$" '表名
cn.Open strCn '与数据库建立连接,如果成功,返回连接对象cn
rs.Open strSQL, cn, 1, 3 '执行strSQL所含的SQL命令,结果保存在rs记录集对象中
'i = 1
Set sht = ThisWorkbook.Worksheets("插入") '把sht指向当前工作簿的sheet1工作表
For i = 2 To Sheets("插入").[a65535].End(xlUp).Row 'i为"行数"的意思
rs.AddNew
For j = 0 To rs.Fields.Count - 1 'j为'列数'
rs(j) = Sheets("插入").Cells(i, j + 1)
Next j
rs.Update
Next i
rs.MoveLast
rs.Close '
MsgBox "导入完毕!"
End Sub
快点来大神帮我解答
第一行 车间 姓名这行是固定的 需要列的话 我可以在其后 或其前添加一行
追答您说的行,实际上在数据库中是一条记录而已,一般Excel中的标题名称在数据库中是按字段名称处理的.所以我给你的程序:
‘可以把字段名称做为 Excel表的第一行,也可以不要下面的循环
If Not sn.BOF And Not sn.EOF Then
For i = 0 To sn.Fields.Count - 1
meSheet.Cells(1, i + 1) = sn.Fields(i).Name
Next i
End If
就是把字段名变成Excel 中的列名.
如果要保证每个操作者的操作与数据库实现同步,那就在每行数据中增加一个唯一的标示符号!如记录的顺序号.如:
序号 车间 姓名 ......
1 一 张三
2 二 李四
3 三 王五
...
在 Excel 中必须有约定,一但有操作者增加一行新数据(不管在最后还是在中间插入),系统要产生一个新的"序号",这个值是唯一的,且当删除一行后这个"序号"也就消失了,不可重复使用!
我这么改了 然后我应该怎么做?
追答按照上面说的思路,把程序写成宏命令执行就OK 了。
亲 求帮助
追答已经做了一部分,你的联系方式?
追问扣扣 578491863 996688366
追答做好后发给你,请稍等。
追问嗯嗯嗯
追答已经加你,验证:实现数据交换
追问亲 你怎么还没发给我
追答最近有其他事,没顾上,现在已经做好了,如果需要请回复。
可以添加一行 只要可以 并附上程序