Tag: ms access

访问 – 将某些列数据转换为行logging

我想应用类似这样的函数:将具有ID字段的某些列“移”到行中,同时复制其他数据 但在这些情况下: 表: A | B | 1 | 3 | 5 | 2| C | D | 8 | 5 | 4 | 7| 成这样的一张桌子: A | B | 1 | A | B | 3 | A | B | 5 | A | B | 2 | C | D | 8 […]

VBA运行时错误1004:方法尝试在Excel 2013中创build表时,对象_Global的范围失败

我了解类似的问题,这些错误已经发布之前,但我什么也没有发现什么时候格式化表,所以不要closures这个请。 在MS Access 2013的VBA代码中,它将数据从MS Access导出到Excel。 6个不同的查询被导出到1个excel文件中,每个都在不同的工作表上。 这工作正常。 然后,我格式化每个工作表中的所有数据。 我有一个表单让用户select保存文件的path。 如果这是第一次创build文件,它正常工作。 如果这是第二次在同一个目录中创build文件,它不起作用,它给了我错误: 运行时错误1004:对象_Global的方法范围失败 我想这是因为我覆盖我的文件,而不是删除它,并重新创build它。 所以我添加了一些代码来检查文件是否存在,如果存在,删除它。 我添加了断点,并在运行这部分代码的同时,正在观看我的文档文件夹。 该文件成功删除,然后重新创build,这是我想要的。 它仍然给了我这个错误。 我手动去删除该文件,然后再重新我的代码。 它工作正常。 我为什么需要手动删除这个文件,以重新运行我的代码? 还是其他的东西导致了这个问题呢? 这里是我的代码的重要部分,因为整个事情太长,发布: 'Checks if a file exists, then checks if it is open Private Sub checkFile(path As String) Dim openCheck As Boolean 'If file exists, make sure it isn't open. If it doesn't, create it […]

将Excel数据传输到Access

我按照http://software-solutions-online.com/excel-vba-export-worksheet-to-existing-access-table/中的说明将数据从Excel电子表格传输到Access数据库。 我调整的脚本是: Sub MailMerge2() Dim strPath As String Dim objAccess As Access.Application Dim strExcelPath As String strPath = "C:…Documents\MailMerge2" strExcelPath = Application.ActiveWorkbook.FullName Set objAccess = New Access.Application Call objAccess.OpenCurrentDatabase(strPath) objAccess.Visible = True Call objAccess.DoCmd.TransferSpreadsheet(acImport, _ acSpreadsheetTypeExcel8, "MyTable1", strExcelPath, _ True, "A1:D11") End Sub 然而,运行这给我一个错误说: 运行时错误:7866,MicrosoftAccess不能打开数据库,因为它缺less,或由另一个用户专门打开,或者它不是一个ADP文件。 有关这些问题是哪个的build议? 对于Access我还是比较陌生的,还没有完全掌握这个术语。

调整Excel VBA函数以访问VBA

我正在重新访问Excel VBA中的一些旧代码,并试图将其转换为Access VBA。 此代码需要一系列数字(“零”)并计算“Lambda”权重的简单加权平均值。 这个计算和这个代码工作正常,并已被证实是正确的。 Excel代码如下。 Option Explicit Function EWMA(Zeros As Range, Lambda As Double, MarkDate As Date, MaturityDate As Date) As Double Dim vZeros() As Variant Dim Price1 As Double, Price2 As Double Dim SumWtdRtn As Double Dim I As Long Dim m As Double Dim LogRtn As Double, RtnSQ As Double, WT As […]

正则expression式访问VBA – 乘数不起作用

我正在尝试使用VBA DAO.Recordset从Access筛选表。 我想要匹配的模式,如: \w{3}\d{5}例如: ABC12345 这工作正常,如果我只testingVBA代码(在Excel中),但是当我执行logging集没有find匹配。 速记字符类\w , \d和乘数部分{3}将被忽略 简单的查询,如: select * from table where column like '*C123*'" or "'*[C123]*' ,工作得很好。 我已经find了一个解决scheme,但它是非常丑陋的: [AZ][AZ][AZ][0-9][0-9][0-9][0-9][0-9]

ADOlogging集编号字段无法正确传输给西class牙用户

我有一个由Excel前端控制的Access数据库。 北美有9个用户没有问题,西class牙的第10个用户有数字格式问题。 当点击一个button时,会创build一个PDF(对所有用户都有正确的格式),并创build一个数据库条目。 对于在西class牙的用户,仙分隔符将从数据库条目中删除。 我正在使用ADOlogging集来传输数据,所有值都input到Excel中的文本框控件中。 我试图分隔美元和美元字段,并添加validation,没有非数字字符input。 点击button时,它将PDF和数据库条目的美元和美分字段组合在一起。 Private Sub AmountBoxCents_AfterUpdate() If CheckValuesForNonNumbers(AmountBoxCents.Value) = True Then If IsNumeric(AmountBox.Value Then AmountBoxTotal.Value = (Left(AmountBoxCents.Value, 2)) / 100 + AmountBox.Value End If Else AmountBoxCents.Value = "" End If End Sub CheckValuesForNonNumbers检查刚刚更新的字段中的字母或符号。 然后IsNumeric部分检查美元金额不是空白的。 Set cnn = New ADODB.Connection 'Connect to the Access database With cnn .Provider = "Microsoft.ACE.OLEDB.12.0;Data Source=" & […]

跟踪更改并将其更新到数据库

我有一个Excel工作簿。 现在有两张床单。 1张将行发送到Access数据库,另一个选项卡显示来自此数据库的所有行。 我希望能够根据最后一张表中的更改更新数据库。 我已经做了一些挖掘,并且看到了一个选项,通过将其作为共享工作簿并启用跟踪更改的内置function来跟踪更改。 我想保持工作簿一次只能由一个用户编辑。 (其他用户可能不会获得最新的行) 更新整个工作表不是一个选项,因为单元格可能没有意识到而编辑。 我只想更新某个列,但问题保持不变,只是更小。 我最正面的情况是,excel会跟踪更改,只更新这些更改,甚至可能会在将更改发送到数据库之前突出显示更改。 这是在VBA中做的可能性吗?

修改列数据格式使用变更表添加列

我正在尝试使用Excel VBA修改Access表中的新列中的数据types的字段大小。 我有以下代码可以工作: InsertDataCommand = "ALTER TABLE " & TableName & " ADD COLUMN " & ColumnName & " " Select Case DataType Case Is = "TEXT" InsertDataCommand = InsertDataCommand & DataType & "(" & DataLength & ")" Case Is = "NUMBER" InsertDataCommand = InsertDataCommand & DataType End Select AccessObject.CurrentProject.Connection.Execute (InsertDataCommand) 我的问题是我的一些数字需要一个双格式,一些需要一个长整数格式。 我无法find任何文档如何指定,如我可以用TEXT字段长度。 有什么想法吗?

SQL数据types对整数和date不匹配

我正在使用MSquery,并有以下的SQL查询: SELECT `Sheet1$`.colA, `Sheet1$`.colB, Switch( colA = '1.0', 'A1', colA = '2.0', 'A2', colA = '3.0', 'C1', colA = '4.0', 'C2' )AS colG FROM ( SELECT `Sheet1$`.colA, `Sheet1$`.colB FROM `Sheet1$` `Sheet1$` UNION ALL SELECT `Sheet2$`.colC, `Sheet2$`.colD FROM `Sheet2$` `Sheet2$` ) t; 我收到一条错误消息:条件expression式中的数据types不匹配。 我认为这与我在switch语句中使用单引号的事实有关。 我有两张桌子,正在追加他们。 然后添加一个额外的列,并根据列A中每行的值添加不同的消息。 此查询工作时,我有列A作为文本,但是当我尝试它的数字或date时,我收到错误消息。 我需要使用什么来代替数字和date的单引号? 是否可以使用单引号的消息将被显示? 非常感谢。

Excel函数访问函数

我在Excel中创build了UPC校验位function,这是完美的工作,但我现在需要在MS Access中创build相同的东西。 这里是代码: Public Function CHECKDIGIT(UPC As String) As String If Len(UPC) = 8 Then CHECKDIGIT = WorksheetFunction.RoundUp(WorksheetFunction.Sum(Mid(UPC, 1, 1), Mid(UPC, 3, 1), Mid(UPC, 5, 1), Mid(UPC, 7, 1)) * 3 + WorksheetFunction.Sum(Mid(UPC, 2, 1), Mid(UPC, 4, 1), Mid(UPC, 6, 1)), -1) – (WorksheetFunction.Sum(Mid(UPC, 1, 1), Mid(UPC, 3, 1), Mid(UPC, 5, 1), Mid(UPC, 7, 1)) […]