Tag: ms access

使用MS Access VBA将行插入.xlsx文件…如何避免损坏文件?

在MS Access中,我写了一小段代码将一行插入到.xlsx文件中。 两个文件都是本地的。 代码运行时没有错误,但每次运行时都会呈现.xlsx文件不可读。 这是一个步骤: (1)我有简单的.xlsx文件(几百行,十几列,一些格式化,没有特殊function或embedded的VBA)。 (2)我可以在Excel中打开并查看文件 – 但是在运行代码之前,我确保closures它。 (3)在MS Access中运行下面的代码。 (4)代码执行没有错误。 debug.print按预期执行并打印出单元格(1,1)的内容。 (5)我在MS Excel中重新打开.xlsx文件,但Excel现在无法打开它。 Excel本身打开,但是,没有打开的文件,保持完全空白。 没有错误。 (6)如果我使用Office365打开文件(通过networking前端),那么,它说以下错误: “我们不能打开这个工作簿,它只能显示某些指定的项目,但它们不在工作簿中。” 我可以很容易地恢复文件,但每次都会发生同样的行为(5次,我testing过 – 每个都有一些不同的.insert方法)。 在我的代码是否有这是造成这个? Public Function WriteHistoryToExcelFile() Dim lExcelObj As Excel.Application Dim lExcelWB As Excel.Workbook, lSheet As Excel.Worksheet Set lExcelObj = CreateObject("Excel.Application") Set lExcelWB = GetObject("C:\Users\XXX\OneDrive\AA-Store\Ziggy\Meta History.xlsx") Set lSheet = lExcelWB.Sheets(1) Debug.Print lSheet.Cells(1, 1) 'This works […]

如何自动更新绑定数据集的访问报告?

我有一个input到Access的悖论表中的单个input输出。 现在我创build了一个报告,并在Paradox的数据集中完成了数据绑定。 在Paradox中完成工作时,单个input输出会发生变化…如何打开访问权限并自动更新报告中的值,而无需手动重新导入表格? 其目的是当打开访问时,报告立即出现在打印之前进行检查。

VBAclosuresExcel文件

假设我在Access中有一些使用excel的VBA代码。 有时我无法正确closures文件。 代码(我认为)应该看起来像这样: WBO.Close savechanges:=True Set WBO = Nothing XLO.Application.Quit Set XLO = Nothing rs.Close db.Close 这里XLO是一个excel对象,WBO是一个工作簿对象,rs是一个DAOlogging集,db是一个DAO数据库。 即使物理excel文件closures仍然有一个“EXCEL.EXE”进程发生在我的系统上,这阻止了我连续运行我的程序两次。 有谁知道为什么发生这种情况? 编辑 我拿出rs.Close ,然后db.Close行,因为我决定手动导出我使用从Access到Excel的数据(有太多的行和列来有效地复制每个单元格)。 但是,这并没有改变手头的问题。 谢谢, Jesse Smothermon

DoCmd.TransferSpreadsheet不识别工作表名称

我试图使用DoCmd.TransferSpreadsheet从Excel工作簿中导入工作DoCmd.TransferSpreadsheet 。 表单的名称是XYZ Priority 。 我打电话给方法如下: DoCmd.TransferSpreadsheet FileName:=filePath, tablename:="XYZ", _ hasfieldnames:=True, range:="[XYZ Priority]!" 我得到这个错误消息: '[XYZ Priority]$' is not a valid name. Make sure that it does not include invalid characters or punctuation and that it is not too long. 看来这个空间是什么导致了这个问题。 我尝试了几种不同的方法来确定范围,有无感叹号,都失败了: "XYZ Priority" "XYZ_Priority" "'XYZ Priority'" 我怎样才能正确地传递工作表到TransferSpreadsheet ?

使用vba将参数化查询导出为ex​​cel

我想通过单击表单中的一个button将我的查询结果导出到Excel文件。 为此,我使用这个代码,它运作良好: Private Sub Command9_Click() On Error GoTo ProcError DoCmd.OutputTo _ ObjectType:=acOutputQuery, _ ObjectName:="Contract Type Billing", _ OutputFormat:=acFormatXLSX, _ Autostart:=True ExitProc: Exit Sub ProcError: Select Case Err.Number Case 2501 'User clicked on Cancel Case Else MsgBox "Error " & Err.Number & ": " & Err.Description, vbCritical, _ "Error in cmdExportQuery_Click event procedure…" End Select Resume […]

访问2013年VBA自动化Excel失去窗口

我支持已经在生产多年的Access应用程序,并且Excel自动化的一部分停止了我们的Office 2013升级和从.mdb到.accdb的转换。 Access数据库包含对Microsoft Excel 15.0对象库的引用。 Excel对象被声明为: Public objXLApp As Excel.Application Public objXLBook As Excel.Workbook 并设置: Set objXLBook = GetObject(strReportPath & strTitle & ".xls") DoEvents Set objXLApp = objXLBook.Parent 在这一点上, objXLApp.visible = false。 另外, objXLApp.Windows.Count = 1,这是正确的。 如果在立即窗口中,我设置objXLApp.visible = true,那么我失去了我的窗口: objXLApp.Windows.Count = 0和引用预期的窗口返回一个'下标超出范围'的错误。 运行它从.mdb文件生成相同的行为。 有任何想法吗? 共产国际再次,代码是由几年前由其他人写的,所以如果有更好的方法来设置工作簿,我愿意提出build议。 HansUp,我可以尝试你的build议。 你能举一个例子吗? 如果有效,我会将你的答案标记为正确的。 基因,是的,原始文件是.xls格式,他们还没有升级到.xlsx。 共同制,代码停止在最后一行代码执行,然后我使用立即窗口检查值,并更改可见属性,并再次检查值。 HansUp,修复它。 我将代码更改为: Set objXLApp = […]

将图片插入Excel,并保持宽高比不超过维度与VBA

我将Access数据库中的数据导出到Excel报表中,报表中需要包含的部分是与数据对应的图片。 图片存储在一个共享文件中,并插入到Excel文件中,如下所示: Dim P As Object Dim xlApp As Excel.Application Dim WB As Workbook Set xlApp = New Excel.Application With xlApp .Visible = False .DisplayAlerts = False End With Set WB = xlApp.Workbooks.Open(FilePath, , True) Set P = xlApp.Sheets(1).Pictures.Insert(PicPath) 'Insert picture With P With .ShapeRange .LockAspectRatio = msoFalse .Width = 375 .Height = 260 End […]

在VBA中查询中使用声明的string更容易

我正在写一个macros,它应该运行查询将数据从excel传输到Access数据库,并且一切工作正常,但是,如果我想要在这些查询之一中使用string,我必须键入它们,如下所示: '" & Lijn & "' 我知道下面的代码(使用VBA编写)通过使用问号和setString更容易在Javascript中编写: VBA: Dim ShiftsQ As String ShiftsQ = "INSERT INTO Shifts(Lijn, Operator, Ploeg, Teamleider) VALUES ('" & Lijn & "', '" & Operator & "', '" & Ploeg & "', '" & Teamleider & "');" 使用Javascript: var ShiftsQ = SQL.prepareStatement(INSERT INTO Shifts(Lijn, Operator, Ploeg, Teamleider) VALUES (?, ?, ?, […]

MS Access VBA脚本与Excel接口

我正在尝试在Microsoft Access中编写一个VBA脚本,它将与Excel工作表进行交互,循环访问行中的单元格,然后将信息拉回到Access表中。 这里是一些sudo代码 – For Each Row For Each Cell in the Row Read the Cell Create a new Record in the Access table with the info from the cell End For Each End For Each 您可以在下面的图片中看到最终结果的简单示例。 我们有什么- 需要什么 – 我已经编码过,但从来没有在VBA; 所以任何帮助将不胜感激! 谢谢你的帮助!!!

使用MS Access交叉表查询太多交叉表列标题错误

我试图导出MS-Access交叉表查询,但得到错误消息“太多的交叉表列标题”。 事实certificate,MS-Access对查询可以有的列数有限制(255列)。 一些在线search后,我没有遇到任何可行的解决scheme…一个解决scheme是将查询拆分成less于255列的多个查询,但是你需要创build多个查询,这取决于列的数量,这可能是未知。 这不是一个非常简单的任务。 有什么办法导出一个交叉表查询超过255列到Excel文件? 更具体地说:有没有使用VBA代码的解决scheme?