使用For循环在Access中选择特定字段并将其粘贴到Excel

时间:2019-01-25 13:11:06

标签: excel vba access-vba

我制作了一个特定的访问表单,其中包含许多字段,这些字段具有相同的名称,但结尾更改的数字相同。我有名为“ Code1”,“ Code2”,“ Code3”等的字段。 我想将字段从“表单”视图粘贴到Excel单元格。大约有150个字段,我不想一一添加。

我做了一个打开Excel模板的按钮,并做了一个For循环,但是我被卡住了。这是主意:

Set MyXL = CreateObject("Excel.Application")

        With MyXL

        .Application.Visible = True
        .Workbooks.Open "F:\0. Main\01.Templates\Order.xltx"


        Dim broj As Variant
        broj = UCase(ID)

        Dim Kod As Variant
        Dim Tip As Variant
        Dim Kolic As Variant

        For i = 1 To 30

   -------> Kod = Code(i).Value
            .Worksheets("Sheet1").Cells(11 + i, 2).Value = Kod

   -------> Tip = Type(i).Value
            .Worksheets("Sheet1").Cells(11 + i, 3).Value = Tip

   -------> Tip = Qty(i).Value
            .Worksheets("Sheet1").Cells(11 + i, 3).Value = Kolic

        Next i

我不知道如何在For循环中包含FieldName +(数字)

2 个答案:

答案 0 :(得分:0)

请检查将整个记录集直接粘贴到Excel范围内是否可行(将根据需要从L2开始进行覆盖):

<select [(ngModel)]="id">
   <option value=""></option>
   <option *ngFor="let item of items" [value]="item.id">{{ item.name }}</option>
</select>

如果这行得通,您可能需要先清除范围,然后再粘贴:

.Worksheets("Sheet1").Cells(12, 2).CopyFromRecordset

如果这样做没有帮助,则可能要遍历Access e中的记录集。 G。像这样:

.Worksheets("Sheet1").Range("L2:N100000").ClearContent

答案 1 :(得分:0)

Option Compare Database
Sub Export()
Dim tableName As String

    tableName = InputBox("What is the name of the table you want to export?")
    Dim outputFileName As String
    outputFileName = CurrentProject.Path & "\Export_" & Format(Date, "yyyyMMdd") & ".xls"
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, tableName, outputFileName, True

    Set myXl = CreateObject("Excel.Application")
    myXl.Visible = True
    myXl.workbooks.Open outputFileName

End Sub