Tag: access vba

为什么我的ADO Access连接给出的结果与在Access应用程序中运行的查询不同?

我一直试图弄清楚这一点了一天,我觉得答案取决于Access如何处理数据types,但我还没有弄明白。 我已经简化了这个问题,希望能够更容易解决。 我有一个Excel工作簿中的2列 – 列A是文本,列B是date。 基本上我只想从列B中select列A不为空时的date。 这理论上工作正常,但不是我遇到的实际情况。 例如:而不是列B是所有的date,列B的值之一是一个空string。 为了处理这个问题,我简单地添加了一个IIF语句,如果B列是=''使其为0: querystr = "Select IIF([Enroll Date] = '',0,[Enroll Date]) As vdate FROM [Sheet1$] where [Account Number] IS NOT NULL" 当我将工作表导入到Access时,此查询工作得很好,但是当我将它与Excel VBA的ADO连接一起使用时,所有logging都将返回为Empty ,但返回为零的零长度string除外。 本小节将为您设置整个工作手册,并展示整个工作: Sub flow() Dim con As Object Dim rec As Object Dim path As String Dim y As Integer: y = 1 Dim sht1 As […]

使用DoCmd.TransferSpreadsheet将Excel电子表格导入到Access中创build重复项

我碰到一个非常意外的问题,我有一个Excel电子表格,我正在导入到Microsoft Access数据库使用: DoCmd.TransferSpreadsheet 。 它似乎工作正常…但现在,我已经到了我的项目的最后阶段,并开始计算导入的数据…我注意到,所有的计算都是他们应该的两倍。 罪魁祸首原来是来自一个非常惊人的来源! 事实certificate,当我使用DoCmd.TransferSpreadsheet导入时,它几乎是复制每个logging。 在4000行电子表格中,我创build的Access表格有7998行。 在研究这个问题时,我已经遇到了多个关于如何在导入之后删除重复项的build议。 这对我来说根本就不是一个解决scheme,因为我的数据里面有重复的行,我需要保留。 总之,我需要完全导入电子表格,因为它位于重复行和所有…但没有导入过程中创build额外的重复项。 看来这应该是一个非常基本的过程,并且真的很好奇,知道这个导入过程是如何创build重复行? 我的意思是,它应该只导入那里的数据! 这是紧迫的时间紧迫的时间,我没有指望这个令人惊讶的问题…所以任何帮助将非常感激。 这是违规的代码行: DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel8, strTableName, strFileName, True 我不认为这很重要,但我正在使用打开文件对话框来获取电子表格。 如果有人认为它会帮助,我可以发布完整的程序。 为了进一步澄清这里是我完整的代码这个过程。 请注意,我正在将导入的文件名称中的表名更改为我自己的枚举名称,因为我一次导入多个工作表。 Private Sub ImportFiles() Dim strFileName As String Dim strTableName As String Dim fDialog As Office.FileDialog Dim varFile As Variant Dim lngProcessID As Long CancelProcessing = False ' Set up the […]

通过Excel VBAjoinSQL表时出错

我需要一些帮助。 我试图提取数据通过Excel中有连接查询的SQL,但我通过下面的代码运行时得到debugging错误.. recset.Open strSQL, con, adOpenDynamic, adLockOptimistic 错误 – 运行时错误-2147467259 下面是代码…..请帮忙:confused: Sub Show_data() Dim con As ADODB.Connection Dim recset As ADODB.Recordset Dim ConnectionString As String Dim strSQL As String Set con = New ADODB.Connection Set recset = New ADODB.Recordset ''Check for the connectivity or connected to the xx network On Error GoTo errHandler errHandler: If […]

当我尝试将某些东西作为图表或图表对象时出错

我试图简单地在VBA中创build一个graphics,但得到的错误: 用户定义types未定义 我已经能够将其暗淡为一个对象,并产生它,但是我不能编辑它的任何成员属性。 我从MS-Access运行VBA,但我不确定会影响它。 这是我的完整代码 Dim TATchart As ChartObject Set TATchart = wrkSht.ChartObjects.Add(Left:=200, Width:=375, Top:=50, Height:=225) With TATchart.Chart Set ChartType = xlXYScatterLines .SetSourceData Source:=wrkSht.Range(wrkSht.cells(1, 1), CurCell.offset(0, 1)) Set .Title = "Total Over Time (MAW)" End With 编辑:wrkSht被初始化为工作表,并一直工作正常。

lockingAccess表以防止在某些时候写入

我正在做一个每周预测,其中人们将在Excel中有一个模板来input数据。 一旦他们input了所有的数据,他们就可以在Excel中点击一个button,将数据放入Access数据库中的表格中。 在星期五上午10:30,我想把表格锁住,这样人们就有很难把数据存入数据库。 在那个时候,那个星期的预测是最终的,然后我希望在星期五的下午5点之后能够再次写入数据库(不再被locking)。 这可能吗? 即使可能有一个单独的button,我可以点击自己在上午10:30,将locking表,然后我可以再次点击它在5PM,使其解锁表(或一个单独的button)。 另外我怎样才能够使一个消息框,只有当表被locking,以告诉用户截止date已经发生,并没有更多的写入表中的消息框? 我用于从Excel模板中将数据注入到Access数据库表中的代码是: Sub ADOFromExcelToAccess() If MsgBox("This Button Will Submit all Data in the Table to the Right & Clear the Table! Are you sure?", vbYesNo) = vbNo Then Exit Sub ' exports data from the active worksheet to a table in an Access database ' this procedure must be […]

无法正确保存并closuresAccess / VBA应用程序中的XLS文件

我很新的Access和VBA,并试图开发一个简单的代码:导出到XLS表,打开它,简单的操作(格式),保存和closures。 但在进程中,我收到以下消息框: "A file named RESUME.XLW" already exists in this location. Do you want to replace it?" "A file named RESUME.XLW" already exists in this location. Do you want to replace it?" select“是”将生成xls文件。 但是,当我尝试打开它,Excel运行在只读模式,我不明白为什么。 我使用下面的代码: Sub FormataExcelPadrao(caminhoExcel As String) Set arquivoExcel = CreateObject("Excel.Application") arquivoExcel.Workbooks.Open (caminhoExcel) With arquivoExcel For Each pagina In .Worksheets With pagina .Columns("A:Z").Autofit […]

使用VBA从Access运行后,从任务pipe理器中删除Excel任务

我现在趁机问这里,我真的尝试了很多不同的方式,但似乎我无法closures任务pipe理器中的Excel任务,直到我完全closuresAccess,烦人,因为我无法使用Access从Excel运行两个不同的作业。 第二份工作会给我错误。 我已经提出了一些意见,我仍然可以摆脱Excel。 代码的目的是运行一些查询和导出数据到excel,然后lockingexcel表格,这样用户只能填写数据的答案。 码: Private Sub Command65_Click() Dim r As Double 'On Error GoTo Error_Handler Dim objExcel As Excel.Application Dim objWorkbook As Workbook Dim objWorksheet As Worksheet Dim dbs As DAO.Database Dim rSt As DAO.Recordset Set dbs = CurrentDb Set rSt = CurrentDb.OpenRecordset("qry_VC_Confirmation") Set objExcel = CreateObject("Excel.Application") objExcel.Visible = True 'objExcel.Quit ' at this […]

导出到Excel时如何避免“存储为文本的数字”

当我从Excel导出表格到Excel时,所有的数字都显示为文本,并在单元格上显示绿色箭头。 有没有一种方法来自动修复这个错误,或者另一种导出方式来解决这个错误? 作为参考,这是我如何导出: DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, pages(i), outputFileName, True

从众多的Excel文件中提取数据到一个数据表或文件的方法

我有超过100个.xlsx文件。 这些文件中的每一个都有两张纸。 在第一张纸上(总是叫sts)通常有大约15-20万行,并有一列叫做“代码”。 第二张(总是称为cps)有大约85k行,也有相同的代码栏。 我需要从表单sts中提取所有行的特定代码,将表格/表单中的所有行以及表单cps中特定代码的所有行转换为第二个表格/表单,并且我需要为所有100个单数文件。 我尝试了两种方法 1)使用Excel VBA打开每个文件,使用自动filter将需要的代码行复制到主工作簿中进行整理。 使用以下代码从预定义的起始目录中获取文件并向下钻取Public Sub SearchFiles() Public Sub SearchFiles() 'Macro to start the file extraction by drilling down from the mydir path specified Dim code As String Dim time1 As Double Dim time2 As Double Range("a1").Value = InputBox("Please type code to extract", code) time1 = Timer myFileSearch _ myDir:="C:\Data\Dashboard\2014\New Files […]

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, […]