Access (VBA)

Access VBAに関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(指定なし : 指定なし)
入力パラメータを表示させずにデータを格納したい。
投稿日時: 21/05/17 11:31:29
投稿者: taka0517

フォーム画面から登録ボタンを押して情報をテーブルへ追加する処理を行っています。登録の際に、PCのユーザー名とコンピューター名を取得してテーブルへ追加できるようobjNetWorkを使っているのですが、コンピュータ名を登録するときパラメーターがでてきてコンピューター名の登録を求められます。パラメータのフィールド名は使用中のPCのコンピュータ名がでてきます。
 
パラメータをださずにテーブルにコンピュータ名を格納したいのですが、どのようにしたらよろしいでしょうか?どうかご教示ください。VBAの構文は以下のようになります。
 
 
PCのユーザー名やコンピュータ名を参照設定を行わす取得しています。ユーザー名は正常に格納できます。情報の登録はSQLによる追加クエリで構成させれています。テーブルにコンピュータ名フィールドを作り忘れたというのはないです。
 
Private Sub 登録_Click()
 
Dim p_UserName As String
Dim p_ComputerName As String
 
 
 
    Dim objNetWork As Object
 
    'ネットワークオブジェクトの作成
    Set objNetWork = CreateObject("WScript.Network")
 
    'ユーザーネーム
    p_UserName = objNetWork.UserName
     
    'コンピュータ名
    p_ComputerName = objNetWork.ComputerName
 
 
  
     
 
'追加クエリのSQL文章
 
Dim SQL As String
 
SQL = "INSERT INTO T顧客マスター ( 顧客名, ユーザーネーム, フリガナ, 郵便番号, 住所, 建物名, 電話番号, FAX番号, 担当者名, メールアドレス, " & _
"営業担当コード, 取引ランク, 印刷対象, 顧客コード, コンピュータ名 ) "
 
SQL = SQL & " SELECT [Forms]![F顧客マスター登録]![顧客名] AS 式1, " & p_UserName & " AS 式2 , 〜(中略)〜  & _"" & p_ComputerName & " AS 式15 ;"
 
 
 
DoCmd.RunSQL SQL
Set objNetWork = Nothing
 
End Sub
 
どうぞよろしくお願いします。

回答
投稿日時: 21/05/17 13:52:51
投稿者: sk

引用:
コンピュータ名を登録するときパラメーターがでてきて
コンピューター名の登録を求められます。
パラメータのフィールド名は使用中のPCのコンピュータ名がでてきます。

変数 p_UserName および p_ComputerName の値が
SQL 文内における文字列リテラルとして記述されるように
なっていないため。
 
引用:
SQL = SQL & " SELECT [Forms]![F顧客マスター登録]![顧客名] AS 式1, " & p_UserName & " AS 式2 , 〜(中略)〜  & _"" & p_ComputerName & " AS 式15 ;"

SQL = SQL & " SELECT [Forms]![F顧客マスター登録]![顧客名] AS 式1, '" & p_UserName & "' AS 式2 , '" & p_ComputerName & "' AS 式15 ;"
 
----------------------------------------------------------------
(中略部分はおかしな端折り方をされているのでバッサリ切りました)

投稿日時: 21/05/18 10:14:02
投稿者: taka0517

お返事おそくなりすみません。
ありがとうございます。
解決できました。
 
解説の件もよく理解できました。

トピックに返信