0

特定の形式でファイルをエクスポートする必要があります。現在、クエリを Excel ファイルとしてエクスポートするだけです。

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "qryReport", "path" & "name.xls"

これにより、次のような Excel ファイルが生成されます。

Name,Age,Sex
Bob,47,M
Janet,30,F
William,23,M

qryReport は単純な選択クエリです。
ここで、別の形式でエクスポートする必要があります。ファイルごとに 1 つのレコードのみで、次のようになります。

_begin_file_
name=Bob
Age=47
Sex=M

列が行になりました。クエリを次のように書き直すことを考えていました

Select "name=" & name as "_begin_file_" from clients
Where name = [whatever] UNION ALL
Select "Age=" & age as "_begin_file_" from clients
Where name = [whatever] UNION ALL
Select "Sex=" & sex as "_begin_file_" from clients
Where name = [whatever]

1 回に 1 つのレコードをエクスポートしますか。
より良い方法はありますか?

4

1 に答える 1

1

50 件のレコードがあり、50 個のテキスト ファイルを作成するにはどうすればよいでしょうか。それはクレイジーです。役立つボタンクリックイベントを作成しましょう。まだExcelにエクスポートしているとしましょう

Private Sub CommandExport_Click()
Dim db As Database
Dim rec1 As Recordset
Dim xlFile As Object
Dim xlWorkBook As Object
Dim xlActiveWkb As Object
Dim xlActiveSheet As Object
Dim Col As Integer

Set db = CurrentDb
Set xlFile = CreateObject("Excel.Application")
Set xlWorkBook = xlFile.Workbooks.Add
Set xlActiveWkb = xlFile.Application.ActiveWorkBook

xlFile.Visible = True
xlActiveWkb.Sheets.Add
xlActiveWkb.Worksheets(1).Name = "Test"

Set xlActiveSheet = xlActiveWkb.Worksheets("Test")
Set rec1 = db.OpenRecordset("clients") 

rec1.MoveFirst
Col = 1
while not rec1.eof
    xlActiveSheet.Cells(1, Col).Value = "_begin__file_"
    xlActiveSheet.Cells(2, Col).Value = "Name=" & rec1![Name]
    xlActiveSheet.Cells(3, Col).Value = "Age=" & rec1![Age]
    xlActiveSheet.Cells(4, Col).Value = "Sex=" & rec1![Sex]
    Col =Col +1
    rec1.MoveNext
wend

Set xlSheet = Nothing
Set xlWorkBook = Nothing
Set xlActiveWkb = Nothing
rec1.Close
db.Close
Set rec1 = Nothing
Set db = Nothing
End Sub
于 2013-07-04T05:38:23.617 に答える