公司有个人事表格,文件比较大,经常打开不方便。现在想自己用VB写个小程序,用程序来向EXCEL表格写入和读取数据。由于在学校本专业不是编程,虽然学了一点,但忘了很多了,来这里求教
比如:我的表格中的字段有工号,姓名,部门,二级小组,三组小组那些,我只需要在程序里把员工信息输入到程序里,就可以添加到EXCEL里面。如果他离职,可以通过程序搜索工号或姓名来查找他的信息,然后导入到另一个叫“离职人员档案”里面,本表格的信息自动删除。
希望大家指教,如果可以,代码上还希望注释一下,谢谢。
我只有一百分了,希望大家帮忙。
因为ADO不支持Excel的删除
所以用Excel+access的方法解决
新建access,在access里面添加2个表,一个"在职"表,一个"离职"表,(都将工号设置主键)
Excel按Ctrl+F11打开vbe编辑器,插入窗体
按以下步骤建立对应控件
最重要的一点就是将文本框的名称属性依次改成"工号", "姓名", "部门", "二级小组", "三组小组",因为代码里要用到
建立好之后 双击窗体将以下代码复制到代码窗口中
Dim Con As Object
Dim Rst As Object
Dim Sql As String
Dim FieldArr
Const ProvidSr$ = "provider=microsoft.jet.oledb.4.0;data source="
Private Sub CommandButton1_Click()
Dim FieldSr$, ValueSr$, x%
If 工号.Text = "" Then MsgBox "工号必填": Exit Sub
For x = 0 To 4
FieldSr = FieldSr & FieldArr(x) & ", "
ValueSr = ValueSr & Me.Controls(FieldArr(x)).Text & "', '"
Next
FieldSr = Left(FieldSr, Len(FieldSr) - 2)
ValueSr = Left(ValueSr, Len(ValueSr) - 3)
Sql = "Insert into 在职 (" & FieldSr & ") VALUES('" & ValueSr & ")"
Con.Execute Sql
MsgBox "操作完成"
End Sub
Private Sub CommandButton2_Click()
Dim Wsr$, TBox$
For x = 0 To 1
TBox = Me.Controls(FieldArr(x)).Text
If TBox <> "" Then Wsr = Wsr & FieldArr(x) & "='" & TBox & "' or "
Next
If Wsr = "" Then MsgBox "请输入工号或姓名": Exit Sub
Wsr = Left(Wsr, Len(Wsr) - 4)
If MsgBox("确定删除?", vbQuestion + vbYesNo) = vbYes Then
Sql = "insert into 离职 select * from 在职 where " & Wsr
Con.Execute Sql
Sql = "delete from 在职 where " & Wsr
Con.Execute Sql
MsgBox "操作完成"
End If
End Sub
Private Sub UserForm_Initialize()
Dim AccPath$
FieldArr = Array("工号", "姓名", "部门", "二级小组", "三组小组")
Set Con = CreateObject("adodb.connection")
AccPath = "d:/Database/data.MDB" ''''这里设置数据库路径
Con.Open ProvidSr & AccPath
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Set Con = Nothing
End Sub
好了 运行就可以了
说的的excel中vba的方法 如果要做成vb软件的话,在vb中的步骤也是一样的
代码和上面一样的 只是控件名称有些不同
追问能加下你扣扣吗?我调试的时候出了点问题!!
追答扣扣 1996 后面 4040