返回目录:excel表格制作
EXCEL或者是ACCESS数据库,本身有数据导入导出功能.如果不是用这些软件直接操作,那就需要编程,编写代码并运行就可以了.编程语言大部分都可以支持这种功能的操作.
对于ACCESS2007版本,抄打开你的ACCESS数据库,点【外部数据】然后点第三个快捷按钮(如下图),弹出窗口中百:
点【浏览】按钮,新弹出窗口中找到要导入的表格后确定,
如果ACCESS中的表格已经建立选“向表中追加一份记录的副本”,然后指定表格名称;如果没有建立表度格选“将源数据导入到新表”,
下一步,接着根据提示选择工作簿中的工作表,直至导入结束。
重复以上操作,导问入其他EXCEL表的数据答(这时候一定要选“向表中追加一份记录的副本”,不然你的数据会导入到不同的表中)。
你可以做个简单查询,分别查询5部分,然后分别导出呀。
比如 select * from 表名 where id between 1 and 40 0000 等等
然后分别导出查询结果
通过vba可以实现读取或写入access数据库。
举例说明:
有一个小工厂,需要在车间展示订单的进展状况,实现电子看板功能,实现方案就是用vba+access数据库。
第一步:创建access数据库。下图是该数据库所涉及的表格以及kb表的部分字段。
第二步:插入用户窗体以及模块。
第三步:编制相应代码。由于篇幅所限,无法将整个过程及代码全部展示,先展示部分和数据库连接以及读取access数据库的代码。
这个是程序开始的用户登录界面用户窗体。启动该窗体需要调用数据库的用户密码表格。如图
代码如下:
Private Sub UserForm_initialize()
Dim rst As New ADODB.Recordset
Dim mYpath As String
mYpath = ThisWorkbook.Path & "\rykb.accdb"
Set conn = CreateObject("ADODB.Connection") '这属于后期绑定
conn.ConnectionString = "Provider=Microsoft.Ace.OleDB.12.0;Data Source=" & mYpath
conn.ConnectionString = conn.ConnectionString & ";Jet OLEDB:Database Password=1" ‘数据库连接 密码 1
conn.Open
Sql = "SELECT * from yhgl2 " ‘获取表格yhgl2的所有字段及记录
rst.Open Sql, conn, adopenkeyset, adlockoptimistic
arr = rst.GetRows
For i = 0 To rst.RecordCount - 1
ComboBox1.AddItem arr(0, i) ‘将用户名写入控件,以便于用户选择
Next i
rst.Close
conn.Close
TextBox2.PasswordChar = "*"
End Sub
登录按钮代码如下:
Private Sub CommandButton1_Click()
Dim rst As New ADODB.Recordset
Dim mYpath As String
Dim YHM As String '用户名
Dim MM As String '密码
Dim YHZ As String
YHM = TextBox1.Text
MM = TextBox2.Text
mYpath = ThisWorkbook.Path & "\rykb.accdb"
Set conn = CreateObject("ADODB.Connection")
conn.ConnectionString = "Provider=Microsoft.Ace.OleDB.12.0;Data Source=" & mYpath
conn.ConnectionString = conn.ConnectionString & ";Jet OLEDB:Database Password=1"
conn.Open
Sql = "SELECT * from yhgl2 WHERE 用户名 = " & "'" & YHM & "'"
rst.Open Sql, conn, adopenkeyset, adlockoptimistic
BJ = False '标记默认为false
If rst.RecordCount < 1 Then
MsgBox ("该用户不存在!")
Else
arr = rst.GetRows
If arr(2, 0) = MM Then BJ = True
If BJ = False Then
MsgBox ("密码不正e68a847a686964616f364确!")
End If
End If
If BJ Then
YHZ = arr(1, 0)
Sql = "SELECT * from yhgl1 WHERE 用户组名 = " & "'" & YHZ & "'"
rst.Close
rst.Open Sql, conn, adopenkeyset, adlockoptimistic
arr = rst.GetRows
qx1 = arr(1, 0)
qx2 = arr(2, 0)
qx3 = arr(3, 0)
qx4 = arr(4, 0)
qx5 = arr(5, 0)
qx6 = arr(6, 0)
qx7 = arr(7, 0)
Unload Me
Call main(qx1, qx2, qx3, qx4, qx5, qx6, qx7)
End If
rst.Close
conn.Close
End Sub
运行代码的效果如图: