2016-11-14 22 views
0

非リテラル文字列をプライベートconst変数にまとめる方法は何ですか?以下のコードから生成されたエラーに応じて。予想されるリテラル定数エラーです。 Private const変数に非リテラル文字列を格納するにはどうすればいいですか

エラー:予想されるリテラル定数

コード:MSアクセスデータベースへの接続を開くには、次のコードに渡さ800A0415

Dim objExcel 
Dim objWorkbook 

Set objExcel = CreateObject("Excel.Application") 
Set objWorkbook = objExcel.Workbooks.Open _ 
    ("somepath\" & FILE.Name) 

private const strSQL1 = "SELECT * FROM [" & objWorkbook.Sheets(1).Name & "$]" 

EXCELRECORDSET.Open strSQL1, adoJET 

私はそれがあることが必要であると考えていますサブタイプStringのバリアント変数を使用するとmsアクセスで他のエラーが発生するため、私の定数は以下のリテラルを使用すると問題はありません

private const strSQL1 = "Select * FROM [SomeHardCodedExcelSheetName$]" 

答えて

1

定義することはできません。あなたは、単にそれはあなたにエラーが発生した場合、私に知らせて、我々はそれらを見てとることができ

Dim strSQL1 
strSQL1="SELECT * FROM [" & objWorkbook.Sheets(1).Name & "$]" 

を使用することができるはずです。

+0

私はエラーを取得:私は宣言行で声明 の期待終わり: 薄暗いstrSQL1文字列 – MM4100

+0

として申し訳ありませんが、私はあなたがVBScriptのではなく、VB/VBAを使用していた気付きませんでした。 VBScriptには1つの可変型しかないことを反映するように回答を更新しました。バリアント。 – JCro

+0

次のエラーが表示されます。複数ステップの操作でエラーが発生しました。各状態を確認してください 行:238 文字:9 コード:80040E21 私は私のプライベート定数変数にシート名をハードコードするときに何の問題もないので、この行に関するエラーはないと思います。 .Fields( "ArrDate2")。値= EXCELRECORDSET.fields(26)。値 – MM4100

関連する問題