|
▼たぬき さん:
ご無沙汰しています。
ようやくこちらの作業に取り掛かれるようになりました。
結論から言いますと、以前
_ ______________
|_| |______________|
ボタン インポートしたいファイルパス
_ ______________
|_| |______________|
ボタン エクスポートしたいファイルパス
_____
| 実行 |
|_____|
みたいなイメージだといいましたが、実はこのとき、エクスポートするファイルを選択するまでも無く、このフォームがある同じアクセスファイルオブジェクトのテーブルに、CSVがインポートされていたようなんです。それまで、どこにエクスポートされているのか全然分からず、これは新たに取り出し先を指定する必要があるのか、と勝手に思い込んでいました。
そこで、単純にボタンを押すとファイル検索が出来、欄にそのパスが出て、実行を押すとオブジェクト:テーブルに新しくテーブルが作られていて、これで出来た!と思ったんです。
以下そのコードです。
Option Compare Database
Option Explicit
Private Sub 入力ファイル選択_Click()
Dim strFileName As String
Dim strFilter As String
Dim blnRet As Boolean
strFilter = "エクセル(*.xls)" & vbNullChar & "*.xls" & vbNullChar & _
"CSV(*.csv)" & vbNullChar & "*.csv"
Me.入力ファイルパス = Null
blnRet = GetFileName_Save(strFilter, strFileName)
If blnRet = True Then
Me.入力ファイルパス = strFileName
End If
End Sub
Private Sub 実行_Click()
Dim strFileName As String
Dim strType As String
If IsNull(Me.入力ファイルパス) = True Or Len(Me.入力ファイルパス) = 0 Then
Exit Sub
End If
If IsNull(Me.入力ファイルパス) = True Or Len(Me.入力ファイルパス) = 0 Then
Exit Sub
End If
strFileName = Me.入力ファイルパス
Select Case Right(strFileName, 3)
Case "csv"
DoCmd.TransferText acImportDelim, , Me.入力ファイルパス, strFileName, True
Case Else
MsgBox "出力対象ファイル形式を選択してください。", vbOKOnly + vbCritical, ""
Exit Sub
End Select
MsgBox "csvファイル" & Chr(13) & _
strFileName & Chr(13) & _
"を出力しました。", vbOKOnly + vbInformation, ""
End Sub
で、これを本来設置するアクセスファイルにそのままフォームをコピーして動かしたところ、
Private Sub 入力ファイル選択_Click()
が黄色くなって
GetFileName_Save
が青くなり
コンパイルエラー:subまたはFunctionが定義されていません
と出ました。
正常なファイルと比べてもふたつのコードは違うところは無く、その特定のアクセスファイルに追加したときだけエラーがでます。ためしに移植先のフォルダの中ににまったく別のファイルとしてコピーして走らせたところ、正常に動きました。
問題は他のフォームやクエリーを持つその既存アクセスファイルなのかとも思いますが、どこをどう変えたらいいのかわかりません。
どうぞヒントをください。
---------------------------------
と書いたのですが、またまたポカミスでGetfilename のプロシージャーをコピーし忘れていました。これは独自関数で、APIを用いることでダイアログボックスを表示させることが出来る、そうです。このへん勉強しないとわかりません。
Getが青くなったということは、そんな関数ないよ、ということだったのですね。
他に指摘する点があれがご指導ください。
そんなわけでお礼と結果報告でした。ありがとうございました。
|
|