Date: Mon, 19 Aug 2002 13:12:21 +0900
From: "koyama" <koyama@kensui.on.arena.ne.jp>
小山と言います。
堀川さんご回答ありがとうございました。
うまくインポートできました。
しかし新たな問題が出てきたのです。
フォームの値をパラメータとしてストアドプロシージャに渡して
その値をインポート元のテーブル名として使いたいのです。
私が書いた構文ですと「'txtFileName'が存在しません」と出てきます。
多分シングルコーテーションでくくっている部分が文字列になるんだと思うのです
が。
この部分を変数で持たせることは可能なのでしょうか?
色々資料を見たのですが、分かりませんでした。
以下にストアドプロシージャとVBAを記載しておきますので
よろしくお願いします。
----------------------------------------------
ALTER PROCEDURE インポートT_create
(
@txtFileName varchar(100)
)
AS
CREATE TABLE #TMP_課別データ(
[課係コード] [varchar](4) NULL,
[商品コード] [int] NULL,
[日付] [int] NULL,
[商品名] [varchar](255) NULL,
[月仕入数量] [float] NULL,
[月仕入金額] [int] NULL,
[月売上数量] [float] NULL,
[月売上金額] [int] NULL,
[年仕入数量] [float] NULL,
[年仕入金額] [int] NULL,
[年売上数量] [float] NULL,
[年売上金額] [int] NULL
)
BULK INSERT #TMP_課別データ
FROM '@txtFileName'
WITH(
DATAFILETYPE='char', FIELDTERMINATOR = ','
)
DROP TABLE #TMP_課係データ
/* SET NOCOUNT ON */
RETURN
------------------------------------------------------------------
VBA側
-------------------------------------------------------------------
Public Sub インポート_pro()
Dim txtfile As Variant
Set cn = CurrentProject.Connection
Set parm1 = New ADODB.Parameter
Set cmd1 = New ADODB.Command
'テキストの文字を"txtfaile"へ代入
txtfile = "C:\" & Forms(CFormname_in).Controls("txtファイル名") & ".csv"
With cmd1
.ActiveConnection = cn
.CommandType = adCmdStoredProc
.CommandText = "インポートT_create"
Set parm1 = .CreateParameter(, adVarChar, adParamInput, 100, txtfile)
.Parameters.Append parm1
End With
'実行
cmd1.Execute ←ここでエラーが起きる
MsgBox ("処理を終了しました")
Set parm1 = Nothing
Set cmd1 = Nothing
cn.Close: Set cn = Nothing
End Sub
------------------------------------------------------------------
よろしくお願いします。
[MSDE/SQLServerに関して、今、どんなことにお困りですか?] |
よろしければお困りの内容を、電子メールで教えて下さい。 |
質問を電子メールで作成する
|
[ウィンドを閉じる][MSDE/SQLServer FAQ ][MSDE / MSDE2000 技術サポート情報一覧]
|