0

テキストファイルの内容を変数にロードしようとしましたが、タイトルエラーが発生しました.VBAナレッジベースを検索すると、それを信じるようになりました

Set mySQL = My.Computer.FileSystem.ReadAllText("C:\sql_query_temp.res")

それを解決しますが、実行すると「エラー:オブジェクトが必要です」というメッセージが表示されます。Heres私のコード、私は何を逃したのですか?

'Requires Microsoft ActiveX Data Objects x.x library in references
Public Sub ConnectToOdbc()

    Dim myconn As New ADODB.Connection
    Dim myrs As New Recordset
    Dim mySQL As String
    Dim myrows As Long

    'Open file containing SQL query
    mySQL = My.Computer.FileSystem.ReadAllText("C:\sql_query_temp.res") <----- bad!

    'Open Connection
     myconn.Open "DSN=database"

    'Do Query
     myrs.Source = mySQL
     Set myrs.ActiveConnection = myconn
     myrs.CursorLocation = adUseClient
     myrs.Open

     'Count Rows
      myrows = myrs.RecordCount

      'Add text to word document!
      Selection.TypeText (myrows)

      'Close Connection
      myrs.Close
      myconn.Close
End Sub
4

2 に答える 2

2

My.ComputerVBA代わりにできるのとはまったく異なるVB.NETです。

Function readFile(path As String) As String
    Dim hF As Integer
    hF = FreeFile()
    Open path For Input As #hF
        readFile = Input$(LOF(hF), #hF)
    Close #hF
End Function

...

mySQL = readFile("C:\sql_query_temp.res")
于 2013-08-07T14:13:32.283 に答える
0

これはうまくいくかもしれないと思います。

特定のディレクトリだけに固執するのではなく、任意のディレクトリを検索できます。このディレクトリは、変数「inFileName」に配置されます

inFileName = Application.GetOpenFilename("Text & r01 Files(*.*),*.*", , "Open Neutral File", "OPEN)

お役に立てれば。

于 2013-08-07T14:37:47.020 に答える