Tag: ms access

Excel – 在列A中search单词。在行中find匹配项时,报告列B中的单词,然后在列A中search任何报告的单词

我想知道如何在列A中search一个string,报告列B中find的相应的string,然后再次search列A中的那些报告的string等。重复直到不再有匹配find。 我正在尝试创build一个用户友好的工作表或macrosinput框,它将search2300行的Excel工作表并生成报告。 我希望用户能够select将被search的“string”(我将使用下拉菜单执行此操作)。 表格/程序将然后: 在列A中search与所选string相匹配的所有匹配项; 报告在列B中find的相应的string(同一行作为匹配); 在列B中find所有报告的string,再次search列A; 重复步骤2)和3)直到找不到更多匹配。 目前在列A和列B上使用简单的filter。用户首先在列A中select他们希望过滤的string。然后他们必须手动确定列B中是否存在列A中的任何结果,如果是,则添加他们到列A的过滤标准。在某些情况下,这可能需要此过程的多次迭代,并可能变得相当耗时。 我的目标是消除用户需要手动完成这些迭代的需要。 这里是我正在看的一个简化的版本(实际的名字是更复杂的)。 Equipment Contents Box 1 Box 2 Box 1 Box 3 Box 1 Box 4 Box 1 Tool 1 Box 1 Tool 2 Box 1 Tool 3 Box 2 Box 5 Box 2 Tool 4 Box 2 Tool 5 Box 3 Box 6 Box 3 […]

Foreach循环从Access datable中使用Excel中的列提取文本文件

我所要做的是创build一个控制台应用程序,使用app.config中的SQL查询从Access数据库中提取单个表,以便可以在不更改应用程序中的代码的情况下更改SQL。 提取的信息必须是文本文件格式。 最难的部分是我有一个Excel文件与表的映射,我只需要提取信息,并添加其他。 例如,我将需要创build一个最初不在数据表中的新列,并给它一个默认值。 这些信息在Excel文件中。 我已经完成了连接,并且我从Access数据库中提取了一个需要临时数据表的表。 我已经有一个Excel文件的数据表,只有我需要在临时数据表中使用的列。 我需要创build一个foreach循环来检查Excel中的A列是否在使用中。 如果是的话,我需要检查另一列,包含Access数据表中的该列的名称,如果有我需要将该列提取到文本文件的值,如果没有值,我需要检查另一列包含一个默认值,我需要将该值添加到数据库中不存在的列。 如果在这两列中没有任何值,我只需要在文本文件中添加一个宽度值为空的空格。 所有提取到文本文件的列都需要有width-string.width,它们之间有一个空格,不需要提取列名。 这是我迄今为止: static void createfile(DataTable accessTable, DataTable excelTable) { string strFileData = ""; foreach(DataRow accessRow in accessTable.Rows) { foreach (DataRow excelrow in excelTable.Rows) { string fieldname = ""; fieldname = excelrow["FieldName"] //if it's not empty strFileData.insert accessRow[fieldname]; string test = accessRow[fieldname.ToString()]; if(position == 0) strFileData […]

将多个Excel文档链接到Access数据库

我有大约200个Excel工作簿,每个工作簿都有一个唯一的名称,在它自己的文件夹中,像C:\docs\daily\XXXX\XXXX_Daily_Report_20150920.xls ,其中XXXX只是一个字母数字标识符,显然这个date就是今天的date。 我需要每天从所有200多个Excel工作簿中获得一个单元格(同一单元格,“I2”)。 我知道你可以将Excel工作簿链接到Access,但我不能找出一种方法,使其每天链接到一个不同的工作簿,我想知道是否有一个查询只是得到一个单元格,而不是链接整个Excel工作簿。 现在我有Excel的VBA打开每个Excel文件,并将其复制并粘贴到我的工作簿中相应的行/列…但是,因为它做了200多次,我想知道如果Access将有一个更快的解决scheme。 有没有办法在Access中编写查询/macros,将链接单元格I2从每一天的新报告(所以明天将是“XXXX每日报告20150921.xls”),只是在第一列和XXXX填充一个表和I2在第二的值?

通过VBA导入MS Excel工作表到MS Access不导入一切

我有一个MS Access数据库程序,从MS Excel工作簿(它只有一张纸),然后处理,并为用户踢出一个完整的表格的数据带来的数据。 整个事情工作正常,但是当他们在报告中遇到错误时,我去找数据库程序来找出问题,并且出现了一个新的问题。 MS Access只导入单元格A1和A2。 当我尝试手动导入Excel文件并附加到表时,导入向导只显示这两个单元格包含在文件中。 不知何故,MS Access没有看到整个数据表。 我已经尝试手动更改DoCmd.TransferSpreadsheet中的acSpreadsheetType选项,它曾经工作过一次。 我也尝试以编程方式更改它没有任何效果(即,我仍然只获取单元格A1和A2)。 下面是处理这部分程序的VBA部分: Dim acSpreadsheetType As Integer strFile2Import = txtFindFile acSpreadsheetType = ExcelVersion(strFile2Import) DoCmd.Hourglass (HourglassOn) DoCmd.SetWarnings (WarningsOff) DoCmd.RunSQL _ "DELETE tbl_Work_Plan_Item_Import.*, * " & _ "FROM tbl_Work_Plan_Item_Import;" DoCmd.TransferSpreadsheet _ acImport, acSpreadsheetType, "tbl_Work_Plan_Item_Import", strFile2Import, True 这里是“ExcelVersion”函数: Public Function ExcelVersion(ByVal strFile2Import As String) 'https://msdn.microsoft.com/en-us/library/office/ff840717.aspx 'https://msdn.microsoft.com/en-us/library/office/ff198017.aspx Set objapp = […]

Excel 2016可安装ISAM

我有一个访问2007年的应用程序,导出数据到Excel工作表,然后打开文件。 一个用户刚刚升级到2016年的Excel。当它试图导出文件,我得到'找不到可安装ISAM'的错误。 代码很简单,可以在任何其他计算机上运行,​​但是没有其他人比2010年更新。 我遵循Microsoft知识库文章中有关检查和重新注册ISAM文件的build议 – 它在那里,看起来很好。 我修复了办公室的灌输,那也没有做任何事情。 我的直觉说,需要有一个更新版本的指令导出 – 我使用Excel 2010的acSpreadsheetTypeExcel12Xml ,但Access 2007没有什么新的支持。 我没有Excel 2016的版本来testing,但我可以不时地上电脑。 另外,如果可能的话,我不想升级到Access 2010。 谢谢!

需要将链接表的date添加到Access报告

我创build了一个Access数据库,它从链接的Excel表格中获取信息来创build查询,报告等。通过BIRT从另一个程序中提取数据,保存BIRT创build的XML表格,然后将它们转换成Excel。 我们不能仅仅将文件导入为XML,因为Access 2010会将信息分割成几个(不可用的)表格。我的用户会每隔一周或更频繁地频繁地进行操作,以便使报表中的信息“新鲜” 。 我怎样才能把链接表的创builddate放到报表中? 它甚至可以完成吗? 我曾经在网上和其他网站上看过,但似乎没有人能够解决这个问题。 我已经考虑制作一个表格,用户需要在创build表格的date填写表格,并在报告中使用这些信息,但是我担心用户的不满,因为用户不得不提取数据通过BIRT首先。 我们这样做的唯一原因是因为BIRT报告“丑陋”,难以让高层pipe理人员阅读,这是一个引人注目的商业用例。 想法,拜托?

使用VBA设置Excel将“打印工作簿”设置为默认打印设置

我的问题 我在VBA中寻找一种方法来将工作簿设置为“打印工作簿”而不是工作表。 我的路障 工作簿本身不能使用AutoExecmacros,因为这是一个程序生成的.xls 我有访问VBA代码导出查询结果到Excel文档。 然后,相同的VBA代码打开Excel文档,格式化.xls文件并添加一些额外的东西(特定工作表中的Headers,Footers,Freezes标题行等)。 然后closures.xls直到最终用户稍后打开。 不能使用ActiveWorkbook.PrintOut 最终用户通常需要打印NOTHING或整个WORKBOOK(他们几乎从不打印单个工作表)。 我知道我可以立即打印出所有的工作表,通过添加到我的子的末尾: ActiveWorkbook.PrintOut Copies:=1, Collate:=True 然而,这不是我想要的。 我有多个位置的用户,其中一些需要打印,其中一些则不需要打印。 所以我想留下选项打印给个人用户。 因此,我期望做的是让最终用户确实需要手动打印文档时,它已被设置为打印整个工作簿,而不是打印选定的工作表。 我知道用户可以手动进行额外的点击,但是我们有一些用户只是点击打印,并且说“我们错过了信息”,而实际上他们并没有打印整个工作簿 – 我想消除这个问题。 所以所有这一切说… 在VBA的方式来设置“打印工作簿”作为默认的打印设置?

Access中的“用户”选项为Excel源数据select唯一的文件path

我正在从2011年由@MattHall创build的一个很好的解决scheme中工作,我也分享了一个关于从Excel导入dynamic范围到Access的问题。 具体到这一点 – 虽然一般为未来的VBA的 – 我的问题是,是否有一个额外的方式来指向Excel源文件,如果它被移动,而不必每次都进入VBA编辑器? 对于我的特定需求,我正在尝试通过共享BOX为其他人处理这些Access和Excel文件,这些文件夹具有不同的文件path供任何人使用。 用户1可能是:C:\ Users \ USER1 \ Box Sync \ filename.xlsx 用户2可能是:C:\ Users \ USER2 \ Box Sync \ filename.xlsx …等任何其他用户。 我很好奇,当USER1创build和使用的VBA中使用的文件path不能被USER2访问时,我们怎么能解决这个问题呢? 是否有一些代码允许每个用户每次通过自己的文件path定位文件? 这将是一个痛苦,但我也不知道一个更好的select,因为我们不是一个共享服务器的工作,这不幸的是限制在目前的框共享。 编辑:如果任何人也可以build议如何将其build议集成到链接的Stackoverflow @MattHall解决scheme中的“dynamic范围”代码,这将特别有助于我的要求。

Excel 2010与Access 2013兼容

我们使用Excel 2013创build了Excel应用程序,该应用程序连接到存储在networking驱动器(所有员工都可以访问)的Access 2013数据库。 它为所有数据连接使用“Microsoft Access数据库”连接types,并且在Excel 2013中运行了反向兼容性检查,发现没有问题。 我也使用VBA代码写回Access数据库。 所有连接都使用Microsoft.ACE.OLEDB.12.0提供程序。 该应用程序完美地运行Excel 2013的任何人,但是,我们的目标受众是2010年和2013年的混合,所以它需要为两者工作。 当2010用户打开应用程序时,他们首先得到一个提示: "Do you want to connect to '\\database address.accdb'?" 如果你说是,然后继续尝试连接它给你一个错误: "Test connection failed because of an error in initializing provider. Your network access was interrupted. To continue, close the database, and then open again." 我也尝试在Excel 2010中创build连接,但是这导致了在使用2013年时的连接问题。 因此,简而言之,我们无法创build与适用于2010和2013版Excel版本的Access 2013数据库的通用连接。 每个数据连接中的连接string如下所示: Provider=Microsoft.ACE.OLEDB.12.0 ;User ID=Admin ;Data Source='file name' […]

Excel中的数据任务

我在Excel中有巨大的数据集(一千个logging行)(列 – 客户,支出)。 我必须find每个月至less花费100美元的客户。 有没有解决方法的快速方法? 我试过数据透视表,但没有成功。 也许我应该上传数据设置为Access然后运行查询? 有任何想法吗? 例