使用正确的列和行格式访问对 Excel 工作表的查询

Posted

技术标签:

【中文标题】使用正确的列和行格式访问对 Excel 工作表的查询【英文标题】:Access Query To Excel Sheet With Proper Column & Row Format 【发布时间】:2015-12-08 15:31:13 【问题描述】:

我已经有了以正确方式检索数据的查询,这是我的代码。

Sub Main()

Dim sDBPath As String
sDBPath = "C:\Users\ges\Documents\ExploWR.mdb"

Call Query_Access_to_excel(sDBPath, "Explo1", "SELECT eipl.MOD_CODE, eipl.BOM_KEY, eipl.DIF, eipl.PART_NO, eipl.PART_DESC, eipl.QTY_PER_CAR, eipl.INTERIOR_COLOUR, eipl.EXTERIOR_COLOUR, eipl.SOURCE_CODE, eipl.SHOP_CLASS," & _
   " eipl.PART_CLASS, eipl.PROCESS_CODE, eipl.OPERATION_NO, eipl.DESIGN_NOTE_NO, eipl.WIP, eipl.PART_ID_CODE, eipl.ADOPT_DATE_Y2K,eipl.ABOLISH_DATE_Y2K, ipo_Modelos.EIM, ipo_Modelos.DEST, ipo_Modelos.MY " & _
   " FROM eipl, explo, ipo_Modelos" & _
   " WHERE explo.MOD_CODE = eipl.MOD_CODE And explo.MY = ipo_Modelos.MY" & _
   " And explo.PLANT = ipo_Modelos.PLANT And eipl.ADOPT_DATE_Y2K <= explo.ADOP " & _
   " And explo.DEST = ipo_Modelos.DEST And explo.EIM = ipo_Modelos.EIM")

End Sub

Sub Query_Access_to_excel(sBd As String, sHoja As String, sSQL As String)

     On Error GoTo error_handler

     Dim rs As ADODB.Recordset
     Dim conn As String
     Dim Range_Destino As Range  

     Set Range_Destino = ActiveWorkbook.Sheets(sHoja).Cells(6, 1)     
     conn = "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source= " & sBd & ";"
     Set rs = New ADODB.Recordset
     Call rs.Open(sSQL, conn, adOpenForwardOnly, adLockReadOnly)

     If Not rs.EOF Then

          Range_Destino.Offset(1, 0).CopyFromRecordset rs
          DoEvents

          MsgBox "Import Complete", vbInformation
     Else
          MsgBox "No registers to import", vbInformation
     End If

     If Not rs Is Nothing Then
        If rs.State = adStateOpen Then
            rs.Close
        End If
        Set rs = Nothing
     End If

     If Not Range_Destino Is Nothing Then
        Set Range_Destino = Nothing
     End If

     Exit Sub
error_handler:
     MsgBox Err.Description, vbCritical
End Sub

我想要做的是将数据正确放置在单元格中,就像这样。

而我所拥有的是这样的。我想将数据放在正确的单元格中,我说的是要正确放置在第一张图像中的列中的最后 3 个字段。我不知道如何在不影响查询的情况下执行此操作。

【问题讨论】:

【参考方案1】:

至于将数据导出到 excel 中,您有多种选择:

SQL 执行命令: https://msdn.microsoft.com/en-us/library/office/ff844793.aspx

相同的命令,但在 VBA 中: Using Excel VBA to export data to MS Access table

您可以遍历表格并创建一个数组,然后将该数组打印到电子表格中

在 Excel 中获得数据后,您只需查看格式——添加一些过滤器、更改文本对齐方式等。您可以使用“记录宏”功能来执行这些任务并清理代码。

所以我想澄清一下 - “影响您的查询”是什么意思?

【讨论】:

我的意思是我不想丢失数据,我不太确定如何制作数组,然后按我想要的顺序添加到列中,我已经有了sheet的格式,数据导入还可以,就是不知道最后3个字段怎么排成列

以上是关于使用正确的列和行格式访问对 Excel 工作表的查询的主要内容,如果未能解决你的问题,请参考以下文章

重新排列某些列和行

更改列中的列宽或行高Excel

将 cout 格式对齐为表格的列

Pandas:DataFrame数据的更改插入新增的列和行

列和行索引高于 SKTileMapNode 中的列和行数

TensorBoard 中图像的列和行是啥意思?