公司有个人事表格,文件比较大,经常打开不方便。现在想自己用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
vb中怎么读取excel文件?
1、调用Excel对象打开EXCEL文件后,读取文件内容\\x0d\\x0a***\\x0d\\x0a在VB中要想调用Excel,需要打开VB编程环境“工程”菜单中的“引用”项目,并选取项目中的“MicrosoftExcel 11.0 object library”项。由于你的Excel版本不同,所以这个选项的版本号也是不同的。\\x0d\\x0a \\x0d\\x0a因为EXC...
vb怎么打开Excel文件并向特定的单元格填写内容excelvb打开文件...
从\\"工程\\"菜单中选择\\"引用\\"栏;选择MicrosoftExcel 9.0 Object Library(EXCEL2000),然后选择\\"确定\\"。表示在工程中要引用EXCEL类型库。2、在通用对象的声明过程中定义EXCEL对象:Dim xlApp AsExcel.Application Dim xlBook As Excel.WorkBook Dim xlSheet AsExcel.Worksheet 3、在程序中操作EXCEL...
怎样实现用vb导入excel表格
首先,在VB中添加对Excel对象库的引用。然后,通过创建Excel应用程序对象(Application)实例来打开Excel文件。接着,获取工作簿(Workbook)和工作表(Worksheet)对象,从而访问Excel中的数据。使用合适的函数(例如Range或Cells)来读取工作表中的数据,并将其导入到VB的本地数据结构中。此外,可以使用循环结...
vb如何读取excel中数据?
1、首先,在Excel表格中输入如图内容,以方便在VBA中进行读取和处理操作。2、进入VBA环境,可以按键盘上的“Alt+F11”进入。右击“Microsoft Excel对象”,从其右键菜单中选择“插入”-“用户窗体”项。3、接着向窗体中拖动一个“标签”和一个“按钮”,右击“按钮”,从其扩展菜单中选择“属性”项。...
如何用vb提取excel表格中的数据如何用vb提取excel表格中的数据和...
用vb提取excel表格中的数据方法:1、在汇总表中的A列,将多个工作表的表名依次排列。2、在B1单元格输入以下公式,然后向右向下填充公式=OFFSET(INDIRECT($A1&"!A1"),,COLUMN(A1)-1)&""公式表示:以A1单元格的内容作为表名引用,通过OFFSET函数将表名引用的A1单元格作为基准单元格,每向右移动一列...
vb如何读取excel数据并存入数组?
读写EXCEL表: \\x0d\\x0a1、在工程中引用Microsoft Excel类型库: \\x0d\\x0a\\x0d\\x0a从"工程"菜单中选择"引用"栏;选择Microsoft Excel 12.0 Object Library(EXCEL2007),然后选择"确定"。表示在工程中要引用EXCEL类型库。 \\x0d\\x0a\\x0d\\x0a2、在通用对象的声明过程中定义EXCEL对象: ...
vb怎样读取excel中指定单元格内容并显示vb怎样读取excel中指定单元格...
1.打开一个Excel的文件,在表格中输入简单的表格,比如学生成绩表格。2.接着,鼠标左键单击【开发工具】菜单标签,在VBA控件下拉菜单中,并选择按钮控件,...3.然后,在表格中绘制出按钮控件,并修改控件名称。4.接着,鼠标左键单击【查看代码】按钮 5然后,在代码窗口中输入VBA语句,比如输入定义变量语句,...
vb数据写入excel,请问如何用vb提取excel表格中的数据有一ex
以此为例,在Excel中读取VBA程序的操作步骤如下(Excel2007为例):1.选择”开发工具“选项卡,点击”Visual Basic“(或者用快捷键Alt+F11)2.出现VBA编辑界面,注意看左侧,选择需要运行代码的工作表,此例为Sheet1;双击进入Sheet1相关程序编辑界面 3.在程序编辑区域,复制上上述代码 4.点击上面的...
怎样用VB读取Excel文件中表格中的数据?
2、 VB读写EXCEL表:VB本身提自动化功能可以读写EXCEL表,其方法如下:第一步:在工程中引用Microsoft Excel类型库:从"工程"菜单中选择"引用"栏;选择Microsoft Excel 9.0 Object Library(EXCEL2000),然后选择"确定"。表示在工程中要引用EXCEL类型库。第二步:在通用对象的声明过程中定义EXCEL对象...
请教请问如何用vb提取excel表格中的数据
首先需要知道你要引用的数据在Excel中的位置,然后在VB里面引用Excel,然后打开Excel文件读数据 Dim scxls As Excel.Application Dim scbook As Excel.Workbook Dim scsheet As Excel.Worksheet ‘Set scxls = CreateObject("excel.application")‘Set scbook = scxls.Workbooks.Add Set scbook = sc...