Tag: access vba

导入Excel文件以使用VBA进行访问

下午好, 今年我一直在做一个Access数据库项目,VBA对于我来说是完全不知道的。 我有VBA代码导入Excel数据到我的数据库临时表,然后附加到正确的表,它的工作原理,但我很好奇,如果这是关于编码和内存使用最有效的方式? Function TempReview() On Error GoTo TempReview_Err DoCmd.SetWarnings False DoCmd.OpenQuery "ClearTempReview", acViewNormal, acEdit DoCmd.TransferSpreadsheet acImport, 10, "TempReview", "M:\filename.xlsx", True, "" DoCmd.OpenQuery "AppendReview", acViewNormal, acEdit TempReview_Exit: Exit Function TempReview_Err: MsgBox Error$ Resume TempReview_Exit End Function 我在数据库的其他方面也有类似的function,如果可以的话,我也希望改进。 问候 背风处

无法使用VBA将附件添加到电子邮件

这个代码我有一个很奇怪的问题。 通用的目的是将Access中的用户数据保存到Excel中的电子表格中,然后使用电子邮件客户端发送包含电子表格附件的电子邮件。 代码如下 Private Sub Send_Email_Click() Dim MySheetPath As String Dim Xl As Excel.Application Dim XlBook As Excel.Workbook Dim XlSheet As Excel.Worksheet ' Tell it location of actual Excel file MySheetPath = "\\SERVER\Users\Public\Documents\WORK ORDERS\Blank Work Order.xlsx" 'Open Excel and the workbook Set Xl = CreateObject("Excel.Application") Set XlBook = GetObject(MySheetPath) 'Make sure excel is visible on […]

将数十个xls文件导入到Access中

我有一个Excel电子表格有5个不同的选项卡。 我想创build这个电子表格访问由5个不同的表格表示。 我的第一个尝试是在文件中导入。 我有以下代码 Function ImportFiles() Dim myfile Dim myDir mypath = "C:\Data\Dashboard\" myDir = Directory myfile = Dir(mypath & "*.xlsx") While myfile <> "" Debug.Print "importing" & myfile DoCmd.TransferSpreadsheet acImport, , "Data", myfile, True myfile = Dir() Wend End Function 我的访问数据库中有五个表。 我是否需要编写一些excel vba来创build5个文件,将5个选项卡中的每一个都删除,然后将这5个选项卡导入到我的访问数据库中相应的表中? 或者有什么办法来适应我的上面的代码把第一个表中的数据第一个标签,第二个表中的第二个表等?

将Excel电子表格的单独选项卡导入到MS Access数据库的单独表格中

我有一个名为Pathmap的表,列Path是我想要导入的文件的文件Path列表 然后我运行下面的代码尝试将所有这些文件导入到我的数据库中的两个表中。 一个从每个文件中调用sts的工作表放到table1中,另一个从每个名为CP的文件中的工作表放到table2中。 Sub pulloop() DoCmd.RunSQL "delete * from table1" DoCmd.RunSQL "delete * from table2" strSql = "PathMap" Set rs = CurrentDb.OpenRecordset(strSql) With rs If Not .BOF And Not .EOF Then .MoveLast .MoveFirst While (Not .EOF) importfile = rs.Fields("Path") objAccess.NewCurrentDatabase "Nate" DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, "TABLE1", importfile, true, STS DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, "TABLE2", importfile, True, CP […]

如何连接excel与locking访问数据库从VBA?

我有一个密码访问数据库(“1234”),我想连接一个Excel中的Excel文件提取数据。 如果我取消保护访问文件,我可以连接自己的东西 path = ThisWorkbook.Path & "\KCBD.accdb" cs = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & path & ";Persist Security Info=False;" Set Cn = New ADODB.Connection Cn.Open cs 它的工作原理,但是当我用密码保护访问文件,我不知道如何做连接。 我已经试过了 Ruta = ThisWorkbook.Path & "\KCBD.accdb" cs = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Ruta & ";Persist Security Info=False;" & "Password=1234;" Set Cn = New ADODB.Connection Cn.Open cs 但在“Cn.Open cs”行这个错误使我停下来:运行时错误'-2147217843(80040e4d)' 你可以帮我吗? 非常感谢。

使用VBA将选定列从Access表导入Excel

我正试图从访问表中导入选定的数据。 这个表有4列,我只想要列2和3.在Excel中,并希望他们列出的顺序:列3,列2(相反,他们是如何在Access中)。 此外,我想根据Excel Spread工作表中引用的date(我在代码中称为RpDate)select行(从Access表)。 在Access中,“Date”是第一列。 我需要一些帮助。 谢谢。 Sub ADOImportFromAccessTable() Dim DBFullName As String Dim TableName As String Dim TargetRange As Range Dim RpDate As Range DBFullName = "C:\Documents\Database.mdb" TableName = "DataTable" TargetRange = Range("C5") RpDate = Range("B2").Value Dim cn As ADODB.Connection, rs As ADODB.Recordset, intColIndex As Integer Set TargetRange = TargetRange.Cells(1, 1) ' open the […]

在Excel中组合两列,并使用VBA将其导出为一列

我需要一些帮助。 我正在尝试构build一个Access表,我想根据date/时间进行sorting。 我从Excel工作表导出这些数据。 date在一个单元格中,但是时间在一列中。 访问表中的列是date,时间,坦克和评论。 我希望date列看起来像“mm / dd / yy hhmm”。 导出date时,我想在循环的每次运行中包含时间。 代码片段的一部分看起来像: .Fields("Date") = Range("B" & d "and "A" & r").Value ,其中“A”&r是时间列,其中r是行号,我怎么编程呢? 谢谢。 Sub ExportU1() Sheets("Plant 1 WP Day").Select Dim cn As ADODB.Connection, rs As ADODB.Recordset, d, r As Long ' connect to the Access database Set cn = New ADODB.Connection cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; " […]

从Access VBA运行Excel函数

我有一个excel命令button,只是将一张纸的内容复制到另一张。 我试图从访问内运行此命令。 我没有得到一个错误,但是当我从访问运行的代码,信息不复制在Excel中。 代码如下。 有任何想法吗? “ Private Sub Command92_Click() Dim x2 As Object Dim GetDBPath As String GetDBPath = CurrentProject.Path & "\" & "Reports.xlsm" Set x2 = CreateObject("Excel.Application") x2.Workbooks.Open (GetDBPath) x2.Visible = True x2.Run CommandButton1_Click x2.ActiveWorkbook.Close (True) x2.Quit Set x2 = Nothing End Sub'

访问VBA TransferSpreadsheet数据不导出没有错误

我有一个Access应用程序使用VBA将数据导出到Excel .xlsm文件。 我的代码行是 DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12, "qry_ALL_Issue", fName, False, "IData" 然后我的代码继续打开Excel应用程序并运行macros,这是为用户生成报告。 我的问题是这个在我的电脑上工作,但不适用于其他人。 我的错误陷阱永远不会被触发,所以我没有得到在Access中的错误。 Excel中的错误陷阱无法find“IData”选项卡时触发。 我没有一个错误代码来处理,所以很难弄清楚发生了什么事情。 我正在使用Office 2010,另一个人正在使用2007年。我尝试让他们打开Excel文件,对其进行修改并保存 – 没有任何更改。 我让他们创build一个新的空白文件,这个新的文件访问没有导出到。 这意味着问题显然是Excel文件。 所以问题是为什么我可以导出到.xlsm文件,而其他人不能? 换句话说,那个文件不能输出到什么地方,但我可以吗?

在Application.FileDialog中selectexcel文件后,检查是否存在特定的工作表

我想从文件dailog中select是否在Excel文件中存在名为“元数据表”的表格。 我的目标步骤如下:文件dailog打开>selectexcel文件>检查“Metadatasheet”是否存在>如果“是”,执行操作>如果“否”popup“select正确的工作簿”。 以下是代码(在访问VBA),我想知道,我如何以及在哪里把这个检查; Public Function create(LatestSNR As String, Metadatasheet As String) ' LatestSNR is the name of the table or query you want to send to Excel ' Metadatasheet is the name of the sheet you want to send it to Dim rst As DAO.Recordset Dim ApXL As Object Dim xlWBk As Object Dim xlWSh […]