Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 在Access表VBA中搜索值_Ms Access_Vba - Fatal编程技术网

Ms access 在Access表VBA中搜索值

Ms access 在Access表VBA中搜索值,ms-access,vba,Ms Access,Vba,我编写了将excel文件导入access表的代码。导入每个文件时,会记录文件名并将其保存到名为“FilesDownloaded”的单独表中 我想添加vba代码,在导入文件之前,它将检查文件名(myfile)是否已保存在“FilesDownloaded”表中。这将防止同一文件被导入两次 代码: 函数Impo_allExcel() Dim myfile 昏暗的小路 作为字节的Dim que Dim rs作为DAO.Recordset que=MsgBox(“此过程将导入文件夹C:\MasterCar

我编写了将excel文件导入access表的代码。导入每个文件时,会记录文件名并将其保存到名为“FilesDownloaded”的单独表中

我想添加vba代码,在导入文件之前,它将检查文件名(myfile)是否已保存在“FilesDownloaded”表中。这将防止同一文件被导入两次

代码:

函数Impo_allExcel() Dim myfile 昏暗的小路 作为字节的Dim que Dim rs作为DAO.Recordset que=MsgBox(“此过程将导入文件夹C:\MasterCard中带有.xls的所有excel项目。请确保此文件夹中仅包含您要导入的文件。是否继续?”,vbYesNo+vbQuestion) 如果que=7,则 退出功能 其他的 '不执行任何操作,继续执行代码 如果结束 DoCmd.SetWarnings(False) DoCmd.RunSQL“从tblMaster\u导入中删除* MsgBox“我们正在处理此请求,请稍候” mypath=“C:\Master\” ChDir(mypath) myfile=Dir(mypath&“*.xls”) 当我的文件“”时执行此操作 如果我的文件像“*.xls”,那么 '这将导入所有excel文件 “(一次一个,但自动)在该文件夹中。 “确保这是你想要的。 'DoCmd.TransferSpreadsheet导入,8,“tblMasterCard_导入”,mypath和myfile DoCmd.transfer电子表格导入,acSpreadsheetTypeExcel8,“tblMaster\u导入”,我的路径和我的文件,1 Set rs=CurrentDb.OpenRecordset(“文件下载”) 艾德纽卢比 rs.Fields(“文件名”).Value=myfile rs.更新 rs.Close 设置rs=无 如果结束 myfile=Dir() 环 '将数据附加到tblAll(此时存在重复的风险) DoCmd.RunSQL“插入tblAll选择tblMaster_导入。*从tblMaster_导入 DoCmd.OpenQuery“qryUpdateField”,acViewNormal ''此代码将指向一个现有表,并存在数据翻倍的风险。 DoCmd.SetWarnings(True) MsgBox“您的上传已完成” 端函数
一种可能的解决方案是进行查询,在名称与您的文件相同的条件下,查询将给出表
文件下载的行的结果。大概是这样的:

countString = "SELECT COUNT(*) FROM [FilesDownloaded] WHERE [NAMEOFCOL] = " & myFile

然后运行查询,如果结果大于1,则显然是您的结果。

您要导入的文件是否有ID?也许您可以在表上设置一个主键以避免重复?我输入的代码是:Do While myfile”“countString=“Select Count(),From[FilesDownloaded]其中[Filename]=myfile”,如果myfile类似于“.xls”,countString=0,那么我会收到一条不匹配的错误消息。帮助?您应该运行查询并获得结果。看一看,然后
countString = "SELECT COUNT(*) FROM [FilesDownloaded] WHERE [NAMEOFCOL] = " & myFile