我在excel表里有一些单元格是和底层总线网络绑定的数据信息
现在要把这些单元格的内容,实时(只要单元格中的数据有变化)送入sql数据库的表中。。请高手指教!
现在要把这些单元格的内容,实时(只要单元格中的数据有变化)送入sql数据库的表中。。请高手指教!
解决方案 »
- 关于vb控件checkbox的问题,求解答
- access不匹配的问题
- 如何让控件不响应事件,但要响应窗体事件。
- 求RLE4,RLE8的详细资料.($100)
- 请问有软件可以反编译VB6的程序吗?怕怕啊!
- 如何控制表格不让多选,一次只能选中一行.
- [求助]如何用vb控制excel中文字,区域的颜色??
- VB中如何实现类似Sleep(可以让CPU闲置)的功能
- 用VB做的ocx需要vb运行库的支持吗?(最近没钱了,只有10分)
- 《网友趣文:一个杂志编辑的一天》给朋友们提神用,困了就进来提神!!!搞笑的!!!
- 客户端访问远程ORACLE。。难道一定要装ORACLE客户端?
- VB编译的程序占用内存大的问题``高手们指教..
下面的代码放到窗体里
Private Sub Command1_Click() On Error GoTo ErrHandler Dim strsql As String
Dim strsql_db As String
Dim j As Integer
If Text1.Text = "" Then
MsgBox "请输入导入年份!", 48, "信息"
Exit Sub
End If
strsql = "select * from jhtz_table "
Set rs = ExecuteSQL(strsql, msgtext)
With CommonDialog1
.DialogTitle = "从Excel导出" & Text1.Text & "数据"
.FileName = "*.xls"
.Filter = "(Excel)*.xls|*.xls"
.CancelError = True
.ShowOpen
End With
strcnn = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=false;Data Source=" & CommonDialog1.FileName & ";Extended Properties='Excel 8.0;HDR=Yes'"
Set cnn = New ADODB.Connection
cnn.Open strcnn
strsql_db = "select * from [sheet1$]"
cnn.Execute strsql_db
Set rs_db = New ADODB.Recordset
rs_db.Open strsql_db, cnn, adOpenKeyset, adLockOptimistic
For j = 1 To rs_db.RecordCount
rs.AddNew
rs.Fields("jh_dwbm") = rs_db.Fields(0)
rs.Fields("jh_xh") = rs_db.Fields(1)
rs.Fields("jh_sbmc") = rs_db.Fields(2)
rs.Fields("jh_gg") = rs_db.Fields(3)
rs.Fields("jh_dw") = rs_db.Fields(4)
rs.Update
rs_db.MoveNext
Next j
MsgBox "导入成功,共有" & rs_db.RecordCount & "条记录!", 48, "信息"
Exit Sub
ErrHandler:
'用户按了“取消”按钮
MsgBox "用户取消从Excel导出数据操作!", 48, "提示"
Exit Sub
End Sub下面的代码放到类模块中
Dim msgtext As String
Dim mrc As ADODB.RecordsetPublic Function ExecuteSQL(ByVal sql As String, MsgString As String) As ADODB.Recordset
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim sTokens() As String
'Dim SQL As String
On Error GoTo ExecuteSQL_Error
sTokens = Split(sql)
Set cnn = New ADODB.Connection
cnn.Open ConnectString
If InStr("INSERT,DELETE,UPDATE", UCase$(sTokens(0))) Then
cnn.Execute sql
MsgString = sTokens(0) & "query successful"
Else
Set rst = New ADODB.Recordset
rst.Open Trim$(sql), cnn, adOpenKeyset, adLockOptimistic
Set ExecuteSQL = rst
MsgString = "查询到" & rst.RecordCount & "条纪录"
End If
ExecuteSQL_Exit:
Set rst = Nothing
Exit Function
Set cnn = Nothing
ExecuteSQL_Error:
MsgString = "查询错误:" & Err.Description
Resume ExecuteSQL_Exit
End FunctionPublic Function ConnectString() As String
ConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\计划管理系统.mdb;Persist Security Info=False"
'ConnectString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=aa;Data Source=RJB-CL"
End Function
比如把Cells(4, 2).Value 值送到user表的 userid里
Dim Con As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim str As StringPrivate Sub CommandButton1_Click()
Con.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=xiaoqu;Data Source=gentleman"
Con.Openstr = "select * from 表费用 order by 住户编号"
Adodc1.RecordSource = str
Set rs = New ADODB.Recordset
rs.Open str, Con, adOpenDynamic
rs.Fields("本次读数") = Range("B4").Value
rs.Update
End Sub
1.创建Excel对象 eole=CREATEOBJECT(′Excel.application′) 2.添加新工作簿 eole.Workbooks.add 3.设置第3个工作表为激活工作表 eole.Worksheets(″sheet3″).Activate 4.打开指定工作簿 eole.Workbooks.Open(″c:\temp\ll.xls″) 5.显示Excel窗口 eole.visible=.t. 6.更改Excel标题栏 eole.Caption=″VFP应用程序调用Microsoft Excel″ 7.给单元格赋值 eole.cells(1,4).value=XM(XM为数据库字段名) 8.设置指定列的宽度(单位:字符个数) eole.ActiveSheet.Columns(1).ColumnWidth=5 9.设置指定行的高度(单位:磅) eole.ActiveSheet.Rows(1).RowHeight=1/0.035 (设定行高为1厘米,1磅=0.035厘米) 10.在第18行之前插入分页符 eole.Worksheets(″Sheet1″).Rows(18).PageBreak=1 11.在第4列之前删除分页符 eole.ActiveSheet.Columns(4).PageBreak=0 12.指定边框线宽度(Borders参数如下) ole.ActiveSheet.Range(″b3:d3″).Borders(2).Weight=3 13.设置四个边框线条的类型 eole.ActiveSheet.Range(″b3:d3″).Borders(2).LineStyle=1 (其中Borders参数:1-左、2-右、3-顶、4-底、5-斜、6-斜/;LineStyle值:1与7-细实、2-细虚、4-点虚、9-双细实线) 14.设置页眉 eole.ActiveSheet.PageSetup.CenterHeader=″报表1″ 15.设置页脚 eole.ActiveSheet.PageSetup.CenterFooter=″第&P页″ 16.设置页眉到顶端边距为2厘米 eole.ActiveSheet.PageSetup.HeaderMargin=2/0.035 17.设置页脚到底边距为3厘米 eole.ActiveSheet.PageSetup.FooterMargin=3/0.035 18.设置顶边距为2厘米 eole.ActiveSheet.PageSetup.TopMargin=2/0.035 19.设置底边距为4厘米 eole.ActiveSheet.PageSetup.BottomMargin=4/0.035 20.设置左边距为2厘米 veole.ActiveSheet.PageSetup.LeftMargin=2/0.035 21.设置右边距为2厘米 eole.ActiveSheet.PageSetup.RightMargin=2/0.035 22.设置页面水平居中 eole.ActiveSheet.PageSetup.CenterHorizontally=.t. 23.设置页面垂直居中 eole.ActiveSheet.PageSetup.CenterVertically=.t. 24.设置页面纸张大小(1-窄行8511 39-宽行1411) eole.ActiveSheet.PageSetup.PaperSize=1 25.打印单元格网线 eole.ActiveSheet.PageSetup.PrintGridlines=.t. 26.拷贝整个工作表 eole.ActiveSheet.UsedRange.Copy 27.拷贝指定区域 eole.ActiveSheet.Range(″A1:E2″).Copy 28.粘贴 eole.WorkSheet(″Sheet2″).Range(″A1″).PasteSpecial 29.在第2行之前插入一行 eole.ActiveSheet.Rows(2).Insert 30.在第2列之前插入一列 eole.ActiveSheet.Columns(2).Insert 31.设置字体 eole.ActiveSheet.Cells(2,1).Font.Name=″黑体″ 32.设置字体大小 eole.ActiveSheet.Cells(1,1).Font.Size=25 33.设置字体为斜体 eole.ActiveSheet.Cells(1,1).Font.Italic=.t. 34.设置整列字体为粗体 eole.ActiveSheet.Columns(1).Font.Bold=.t. 35.清除单元格公式 eole.ActiveSheet.Cells(1,4).ClearContents 36.打印预览工作表 eole.ActiveSheet.PrintPreview 37.打印输出工作表 eole.ActiveSheet.PrintOut 38.工作表另为 eole.ActiveWorkbook.SaveAs(″c:\temp\22.xls″) 39.放弃存盘 eole.ActiveWorkbook.saved=.t. 40.关闭工作簿 eole.Workbooks.close 41.退出Excel eole.quit