vb操作文件夹多电子表格 添加数据到数据库

server/2024/10/22 15:42:56/

Private Sub 批量文件夹导入_Click()

If MsgBox(" 1程序文件夹内必须有 五险一金 文件夹. 2五险一金里面表格名称开头前六位格式必须是 202401 202512 的日期格式 3表格里面字段名称必须和数据库字段相同 4必须是 A列工号 B列姓名 D列身份证 …顺序 ! 5程序启动后不动鼠标 “, vbYesNo + 64, “强烈提示!”) = vbNo Then GoTo l
Dim xlApp As New Excel.Application '定义并创建EXCEL对象
Dim I As Integer
Dim zd3 As Object
Set zd3 = CreateObject(“scripting.dictionary”)
Dim ger As New Excel.Workbook '创建工作簿
STRSQL = “Select * From xjsdb where 序号=1”
RST.Open STRSQL, CNN, 1, 3
For I = 0 To RST.Fields.Count - 1
huwei1 = RST.Fields(I).Name
If Not zd3.Exists(huwei1) Then
zd3.Add huwei1, huwei1
End If
Next I
RST.Close
Dim sfzh, gjz As String
xlApp.DisplayAlerts = False
'xlApp.Visible = True '让Excel可见
Dim fso As Object, fd As Object, f As Object
Set fso = CreateObject(“Scripting.FileSystemObject”)
Set fd = fso.GetFolder(App.Path & “/五险一金”)
For Each f In fd.Files
'这里是对遍历出的每个文件进行操作
'其中f.Name是文件名,f.Path是文件路径,
'f.Size是文件大小,f.Type是文件类型,等等
'为了防止卡顿,可以在这个循环里用下面这行:
'DoEvents
bg = bg + 1
wjm = f.Name
yf = Val(Left(wjm, 4)) & “-” & Mid(wjm, 5, 2)
rq = yf & “-20”
Set ger = xlApp.Workbooks.Open(App.Path & “/五险一金/” & wjm) ‘打开个人表
ZUIHYIH = Sheets(1).Range(“a” & Rows.Count).End(xlUp).Row
For I = 2 To ZUIHYIH
If ger.ActiveSheet.Range(“a” & I & “”) = “” Then GoTo ll
rw = ger.ActiveSheet.Range(“b” & I & “”)
SFZ = ger.ActiveSheet.Range(“d” & I & “”)
STRSQL = “Select * From xjsdb where 证件号码= '” & SFZ & "’ and 年月 = '” & rq & "’ "
RST.Open STRSQL, CNN, 1, 3
If Not RST.EOF And Not RST.BOF Then
'aa = 1
Else
RST.AddNew
RST.Fields(“年月”) = rq
RST.Fields(“工号”) = ger.ActiveSheet.Range(“a” & I & “”)
RST.Fields(“姓名”) = ger.ActiveSheet.Range(“b” & I & “”)
RST.Fields(“证件号码”) = SFZ
End If
For ii = 5 To 22
huwei1 = ger.ActiveSheet.Cells(1, ii)
If Not zd3.Exists(huwei1) Then
If huwei1 = “失业保险费” Then
RST.Fields(“失业保险金”) = Val(ger.ActiveSheet.Cells(I, ii))
End If
If huwei1 = “企业(职业)年金” Then
RST.Fields(“企业职业年金”) = Val(ger.ActiveSheet.Cells(I, ii))
End If
Else
'DD = ger.ActiveSheet.Range(Cells(I, ii), Cells(I, ii))
RST.Fields(huwei1) = Val(ger.ActiveSheet.Cells(I, ii))
End If
Next ii
RST.Update
RST.Close
ll:
Next I

ger.Close

Next

Set fd = Nothing
Set fso = Nothing

xlApp.Quit
Set xlApp = Nothing
MsgBox "操作完成 一共更新 表 " & bg, vbYesNo + 64, “操作提示!”
l:
End Sub


http://www.ppmy.cn/server/133940.html

相关文章

laravel清除不同缓存

1、清除应用程序缓存: php artisan cache:clear2、清除路由缓存: php artisan route:cache3、清除配置缓存: php artisan config:cache4、清除编译后的视图文件: php artisan view:clear5、清除事件和监听器缓存: ph…

「Qt Widget中文示例指南」如何实现一个平板电脑示例?(二)

Qt 是目前最先进、最完整的跨平台C开发工具。它不仅完全实现了一次编写,所有平台无差别运行,更提供了几乎所有开发过程中需要用到的工具。如今,Qt已被运用于超过70个行业、数千家企业,支持数百万设备及应用。 当您在平板电脑上使用…

Win安装Redis

目录 1、下载 2、解压文件并修改名称 3、前台简单启动 4、将redis设置成服务后台启动 5、命令启停redis 6、配置文件设置 1、下载 【下载地址】 2、解压文件并修改名称 3、前台简单启动 redis-server.exe redis.windows.conf 4、将redis设置成服务后台启动 redis-server -…

MedSAM微调版,自动生成 Prompt 嵌入实现图像分割!

最近提出的Segment Anything Model (SAM)等基础模型在图像分割任务上取得了显著的成果。 然而,这些模型通常需要通过人工设计的 Prompt (如边界框)进行用户交互,这限制了它们的部署到下游任务。 将这些模型适应到具有完全 Token 数…

Flink窗口分配器WindowAssigner

前言 Flink 数据流经过 keyBy 分组后,下一步就是 WindowAssigner。 WindowAssigner 定义了 stream 中的元素如何被分发到各个窗口,元素可以被分发到一个或多个窗口中,Flink 内置了常用的窗口分配器,包括:tumbling wi…

oracle 12c adg 部署

oracle 12C 搭建Active Data Gurad(主从实时同步) Oracle版本: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production 操作前须知: 基于两个单 机oracle 进行。 需要先自行安装完成oracle12c ​修改host ,oem 为主,oracle5…

FreeRTOS的中断管理

事件 嵌入式实时系统必须对源自环境的事件采取行动。例如,到达以太网外围设备的数据包(事件)可能需要传递到TCP/IP堆栈进行处理(动作)。非普通系统必须为来自多个来源的事件提供服务,所有这些事件都有不同…

React 进阶阶段学习计划

React 进阶阶段学习计划 目标 掌握自定义Hooks的创建和使用。深入理解上下文(Context)和Redux的高级用法。学会服务端渲染(SSR)。深入探讨性能优化技巧。 学习内容 自定义Hooks 创建和使用自定义Hooks 自定义Hooks&#xff1…