Tag: ms access

用C#编写MS Office – 有可能吗?

像Excel这样的MS office应用程序可以使用Visual Basic for Applications进行编程。是否可以使用C#编写MS Office以执行高级任务?

VBA InStr Excel与Access

Access的默认InStr似乎是vbTextCompare和Excel似乎是vbBinaryCompare。 任何人都可以确认和/或说明为什么两个不同的Microsoft产品处理相同的代码有所不同。

如何将一个包含多个工作表的excel文件通过vba导入到访问表中

我必须将一个包含多个工作表的excel文件导入到vba的访问表中,但是我下面列出的当前代码只会复制excel的第一个工作表logging并导入到访问表中,所有的工作表都具有相同的格式和布局。 如何使我的代码复制所有工作表的logging,并导入到访问表中。 请随时回答这个问题,谢谢你的回答。 Private Sub Command9_Click() ' Requires reference to Microsoft Office 11.0 Object Library. Dim fDialog As FileDialog Dim varFile As Variant ' Clear listbox contents. 'Me.FileList.RowSource = "" ' Set up the File Dialog. Set fDialog = Application.FileDialog(msoFileDialogFilePicker) With fDialog .AllowMultiSelect = False .Filters.Add "Excel File", "*.xls" .Filters.Add "Excel File", "*.xlsx" If .Show […]

Access数据库引擎32位安装失败

我正在尝试安装Access数据库引擎2007年32位。 启animation面出现,你点击“下一步”,然后失败,错误: “由于错误,安装过早结束” 你点击“确定”,另一个错误窗口说: “安装包失败了。” 当我使用Access数据库引擎** 2010 32位进行尝试时,情况完全相同 。 此生产服务器正在运行Windows Server 2008 R2 SP1 64位。 在我尝试安装Access数据库引擎32位之前,我首先需要安装Microsoft Office 2010 Pro( 仅适用于Excel和Office工具 )。 我在生产服务器上尝试了32位版本,因为这是我在开发环境中设置的。 没有运气。 32位版本不会安装。 我没有收到错误“您安装了Office的64位组件”。 我只是收到了上面列出的完全相同的两个错误。 因此,我知道32位/ 64位对于我的项目的Office安装无关紧要,所以我安装了64位Office Pro 2010(仅适用于Excel和Office工具),没有任何问题。 我有一个要求,我需要安装的32位版本的Access数据库引擎。 2007年或2010年,没关系。 我无法使用Access数据库引擎2010的64位版本,因为我的SSIS包不能使用它。 我需要32位版本。 我已经尝试了几个步骤来尝试安装它。 我认真地认为,生产服务器有一些厌恶安装32位应用程序。 以下是我所尝试的: 试图通过命令行安装“/ passive”开关….没有运气。 尝试了很多迭代,将安装文件复制到服务器(直接下载新的副本到服务器,下载一个新的副本到我的本地机器,然后复制它,复制压缩)(http://social.msdn.microsoft .COM /论坛/ EN-US / sqldataaccess /线程/ efd3c1f0-07cd-的45 Ca-a626-2dd0c7ac3e9f)。 尝试从此链接的方法1 http://answers.microsoft.com/en-us/windows/forum/windows_7-windows_programs/fatal-error-installation-ended-prematurely-because/cd963697-9d84-43d2-aa61-a2a97e51d6a0 。 无法尝试方法2,因为它需要重新启动服务器,而且在我的环境中需要很长的更改pipe理过程。 我已经validation我是服务器上的本地pipe理员。 (证据,我可以安装其他应用程序(办公室64位以上))。 validation有没有其他办公产品应该阻止安装。 […]

QueryTable.Refresh导致不完整的OLE操作; 如何完成?

我试图用这个报告进行交stream,写了VBA执行各种任务,然后在“RunAll”子目录中依次调用它们。 我有一个数据从Access查询到我的工作簿中的数据透视表中的选项卡。 我发现,当我运行这个: Sub QueryTableRefresh() ActiveWorkbook.Sheets("data").Activate Range("A2").Activate Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False End Sub 它使用Access创build了一个无效的OLE动作,当我运行下面的命令(“TableRefresh”是一个带有删除和追加查询的函数)时,会导致只读的Access实例打开: Public Sub RefreshAccessTables() Dim acApp As Object Dim db As Object Set acApp = CreateObject("Access.Application") acApp.OpenCurrentDatabase ("P:\Reports\Daily Origination Volume\Daily Origination Volume.accdb") Set db = acApp acApp.Run "TableRefresh" acApp.Quit Set acApp = Nothing End Sub 只读实例阻止删除和附加查询的写入操作。 这不是我的RunAll中这两个运行的顺序,但是工作stream将需要RunAll将再次运行,如果有任何更新,这将导致冲突。 我已经从Excel多次运行Accessfunction,并没有问题,直到我运行查询表刷新。 Refreshall导致同样的问题。 如何在Excel中只更新我的查询表,而不离开此OLE操作不完整?

在Access VBA中更新Excel Application.StatusBar

我目前的情况: 我正在开发embedded在excel文件(名为“Dashboard.xlsm”和访问文件“Dashboard.accdb”)中的VBA程序的顶点。 这两个文件通过VBA互相交谈,以帮助我为我的公司分析一些数据。 因为这些程序正在分发给几个经理,如果某些事情在3秒钟内没有完成,我就需要一个很好的方法来指出在Excel中运行的SQL查询的进度(因为Access在背景)。 我目前的Excel代码: Sub generateFRMPComprehensive_ButtonClick(Optional sheetName As Variant) Application.ScreenUpdating = False Dim directoryPath As String Dim cn As Object Dim rs As Object Dim strCon As String Dim strSQL, strInput As String Dim sArray As Variant Dim appAccess As Access.Application Dim directoryName oldStatusBar = Application.DisplayStatusBar Application.DisplayStatusBar = True directoryName = Application.ActiveWorkbook.Path directoryPath = […]

VBA过程返回结果只有一个特定的date

大家。 我有一个程序,每天从大表中提取某些数据,然后将这些数据粘贴到一个excel文件中。 源表包含约200万条logging(从2015年10月1日至2016年9月9日),并以每月22万条logging的速度增长。 下面的程序提取了我所需要的数据,直到2016年6月中旬。从那时起,它不能提取任何数据。 运行常规查询确实显示数据在那里。 打开表格也显示了相同的结果 – 数据截至09.09.2016)。 我会认为代码有一些其他问题,但它在另一个表上正常工作。 它也适用于这一个,但不能想到为什么它不会find2016年6月中旬以前的logging。我索引date字段,这是我提取logging的参数,但没有帮助。 任何帮助和build议,高度赞赏。 谢谢你的时间。 这是我的代码: Dim xl As Excel.Application Dim wb As Excel.Workbook Dim xs As Excel.Worksheet Dim rng As Excel.Range Dim c_range As Excel.Range Dim dbs As DAO.Database Dim qdf As DAO.QueryDef Dim rst As DAO.Recordset Dim strsql As String strsql = "SELECT tblTraderExecutions.exec_id, tblTraderExecutions.exec_date, tblTraderExecutions.exec_time, […]

在Access和Excel之间复制/粘贴

在Access中的一个表单中,我想把一些文本放在一个string中,然后我的用户可以将这个string复制到Excel中的不同列中。 例如,在我的表单中有5个字母:ABCDE,当用户点击一个button“复制”,然后在Excel中进行粘贴,例如A1。 然后把这5个字母粘贴成一行5列: A1 B1 C1 D1 E1 ABCDE 我正在search的是,是否有一个符号只是表示列的结束。

从CSV复制到访问时避免数字被截断

我正在使用此代码将数据从csv文件复制到访问表: str = "insert into tablex (field1, field2, field3) select field1, field2, field3 from [Text; FMT=Delimited; HDR=YES; CharacterSet=437; DATABASE=" & ThisWorkbook.Path & "\data-for-tool-refresh].csvtable.csv;" 但是,数据粘贴后,某些列被截断,即十进制值被删除。 我已经检查了数据types的访问表,它被设置为“双”,但仍然值被截断例如:15.12345成为15 有人可以请build议我一个方法来获取这些值进入访问不被截断

Excel以低性能连接到Access

我的代码要非常频繁地查询访问,我使用“for”为每一行,并检查单元格的值,如果在访问表中存在。 但我觉得performance很糟糕。 现在我正在使用adodb.connection来连接访问。 对不起,我不能把代码,因为它不在我的手中。 任何人都可以帮助我如何从excel vba非常频繁地查询表和快速的performance? 编辑: For rowNum = 2 To 1000000 'check if title exists,if yes, get ppid, if not, insert one, get ppid, and make relation in r-table ppID = isTitleExistReturnID(ppTitle) If ppID = "0" Then ppID = addPpReturnID(ppTitle, ppDate, ppJournal) paperAddedCount = paperAddedCount + 1 isPpAdded = True Else isPpAdded = […]