私はVBAを初めて使用し、特定のフォルダーにある4つの.csvファイルをSQLデータベースにインポートする手順を自動化しようとしています。4つのコマンドボタンがあるコードがあり、それぞれ4つでファイルを選択し、SQLにインポートしています。ただし、特定のフォルダーからすべての.csvファイルを選択してSQLにインポートするコマンドボタンを1つだけ持つ方法があるかどうかを知りたいと思いました。次のパスのフォルダ名がDatabaseであると想定します:Y:\ Data \ Database
ローカルパスをSQLサーバーパスに変換する次のインポートボタンコードと、データをSQLサーバーにインポートする他のすべての種類の関数があります。(fName1 ... fName4は、ユーザーが現在選択している4つのファイルパスのTextBox値です)
Private Sub ImportButton_Click()
Dim fName1 As String
Dim fName2 As String
Dim fName3 As String
Dim fName4 As String
Dim perc As Single
Dim index As Integer
Dim subStr As String
Dim sqlStr As String
sqlStr = "E:\Analytics\"
'Convert the local path to SQL server path
fName1 = TextBox1.Value
index = InStr(1, fName1, "\")
subStr = Left(fName1, index)
fName1 = Replace(fName1, subStr, sqlStr, , 1)
fName2 = TextBox2.Value
index = InStr(1, fName2, "\")
subStr = Left(fName2, index)
fName2 = Replace(fName2, subStr, sqlStr, , 1)
fName3 = TextBox3.Value
index = InStr(1, fName3, "\")
subStr = Left(fName3, index)
fName3 = Replace(fName3, subStr, sqlStr, , 1)
fName4 = TextBox4.Value
index = InStr(1, fName4, "\")
subStr = Left(fName4, index)
fName4 = Replace(fName4, subStr, sqlStr, , 1)
'Modify the text captions for test purpose
TextBox1.Value = fName1
TextBox2.Value = fName2
TextBox3.Value = fName3
TextBox4.Value = fName4
Dim cnPubs As ADODB.Connection
Dim cmd As ADODB.Command
' Create a connection object.
Set cnPubs = New ADODB.Connection
' Provide the connection string.
Dim strConn As String
'Use the SQL Server OLE DB Provider.
strConn = "PROVIDER=SQLOLEDB;"
'Connect to the Pubs database on server hcdcd-actstat01 .
strConn = strConn & "DATA SOURCE=hcdcd-actstat01;INITIAL CATALOG=Analytics;"
'Use an integrated login.
strConn = strConn & " INTEGRATED SECURITY=sspi;"
'Now open the connection.
cnPubs.Open strConn
Set cmd = New ADODB.Command
cmd.ActiveConnection = cnPubs
cmd.CommandType = adCmdStoredProc
cmd.CommandText = "dbo.Proc_CapitalAllocation_Step1"
cmd.CommandTimeout = 1200 'Seconds
''cmd.Parameters.Append cmd.CreateParameter_(fName1, fName2, fName3, fName4)
Call cmd.Execute(Parameters:=Array(fName1, fName2, fName3, fName4), Options:=adCmdStoredProc)
End Sub
どんな助けでもいただければ幸いです。どうもありがとう。