• ベストアンサー

【Access2000】マシンIDの取得方法

1つのAccessファイルを複数人で利用するため、排他テーブルを作成しています。 フォームを開いた時に、入力フォームに記載されている伝票番号を、排他テーブルに入力し、ほかの人が見た場合、編集できないようにしています。 現在、排他テーブルには伝票番号の項目しかありません。あわせてどのマシンがその伝票番号を取得しているかを確認したいのですが、VBAでマシンIDを取得するにはどうすればよいでしょうか。 もし何か方法があればお教えください。

質問者が選んだベストアンサー

  • ベストアンサー
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.1

マシンIDとして、どのような物を望んでいるか分かりませんが OS が2000以上?なら、Environ("ComputerName") でコンピュータ名が取得できます。 ネットワーク上で一意の名前ですから使えませんかね? なお、コマンドプロンプトで、Set で そのマシンで用意されている環境変数が分かります。

yui_kis
質問者

お礼

下記の件ですが自己解決しました。 cmd.CommandText = "INSERT INTO wk_メモデータ排他チェック(受注番号,コンピュータ名)" & _ " VALUES(" & zNo & "," & "'" & comName & "'" & ")" でした…。すみませんでした。 素早いご回答本当にありがとうございました!また何かありましたらよろしくお願いいたしますm(_ _)m

yui_kis
質問者

補足

回答ありがとうございます。 Environ("ComputerName")で取得することができましたが、更新しようとするとエラーになってしまいます。 Public Function HAITA_ADD(ByVal zNo As String) As Boolean Dim comName As String comName = Trim(Environ("ComputerName")) Dim cnc As New ADODB.Connection Dim rst As New ADODB.Recordset Dim cmd As New ADODB.Command Set cnc = CurrentProject.Connection Set cmd.ActiveConnection = cnc cmd.CommandText = "INSERT INTO 排他テーブル(受注番号,コンピュータ名)" & _ " VALUES(" & zNo & "," & comName & ")" Set rst = cmd.Execute End Function 上記コードで実行すると「一つ以上の必要なパラメータが設定されていません。」とエラーが表示されてしまいます。 テーブル、フィールド名は間違いありません。(またデバッグ時、comNameはちゃんと取れています。) 原因がわかりましたらお教えくださいませ(><)!

関連するQ&A

  • フォームで入力した内容をクエリに反映させる方法

    Accessについて教えていただければと思います。 会社のシステムのデータベースにリンクし、Accessのツールを作っています。 複数のテーブルでクエリを作り、フォームに条件指定し表示させるところまで進んでいます。(DLookUpを使っています。) このフォームに、非連結のテキストボックスを追加し、条件入力で表示された内容に、テキストボックスで入力した内容を合わせ、テーブルもしくは、クエリに保存しておきたいのですが、うまくいきません。 構成は、 Aテーブル:伝票番号、得意先 Bテーブル:伝票番号、枝番、数量 ABクエリ:伝票番号、枝番、数量、得意先 Cフォーム:伝票番号+枝番を入力し、数量、得意先を表示      配送個口数をテキストボックスに入力 Cフォームのすべての項目をのちに呼び出せるように保存しておきたいのです。 配送個口数を入力すると、枝番に関係なく、同じ伝票番号〈複数〉に登録。という形は(一時)できたのですが、枝番で絞り込めず困っています。 VBAもあまり得意ではないので、わかりやすくご指導いただければと思います。 どれだけの情報が必要かも分からないので、とりあえず、この状態で投稿いたします。 長くなりましたが、よろしくお願いいたします。

  • Access アクセスについて

    Accessでデータベースを作っています。 テーブル、クエリは下記のようになっており、リレーションシップで紐付けしてあります。 クエリからフォームを作成し、商品番号を入力することでマスタテーブルに登録されていれば自動で商品名等の情報が表示されるようになっています。(フォーム1) 商品番号を入力しカーソルが移動した時、マスタテーブルに該当する項目がなかった場合、マスタテーブルから作成した新規追加用のフォームが表示されるようになっています。(サブフォームではありません) 新規追加用フォームに商品名を入力し、閉じてもフォーム1の商品名の欄に反映されません。新規追加用フォームを閉じる時にVBAで”Requery”,”Refresh”もやってみましたがダメでした。商品番号を入力し直すと表示されます。 どうすれば自動で商品名が表示されるようになるか教えてください。 テーブル1(入力用) 1.ID(主キー) 2.商品番号 3.etc. テーブル2(マスタテーブル) 1.商品番号(主キー) 2.商品名 3.etc. クエリ 1.ID(テーブル1) 2.商品番号(テーブル1) 3.商品名(テーブル2) 4.etc.(テーブル2) 5.etc.(テーブル1)

  • Access2000 単票フォーム上のボタンを押すと、同じIDを持つフォームが開くよういしたい

    Accessの初心者です。 本当に超がつく初心者ですので、解説もしてくださるととても嬉しいです。 宜しくお願いします。 請求書番号連番を取得するフォーム(テーブルも)があります。 請求書番号は特殊な為、現時点ではじか打ちで作成しています。 それとは別に、顧客ごとに請求データを入力するフォーム(テーブルも)があります。 その二つは、請求書番号でひもづけています。 <請求書番号連番取得フォーム/帳票> ・請求書番号 ・請求日 ・顧客ID <請求データの入力フォーム_A社/単票> ※これがB社、C社と複数存在します。 ・顧客ID ・請求書番号 ・商品CD <請求書番号連番取得フォーム/帳票>上にボタンをつくり、そのボタンを押すと、 同じ顧客IDを持つ<請求データの入力フォーム/単票>が開けたらな・・・と思っているのですが、 わかりますでしょうか・・・・。 どうか、宜しくお願い致します。 <請求書番号連番取得フォーム/帳票> _________________________________________________________________ 請求書番号|請求日 |顧客ID|  _________________________________________________________________ 09BB87ZZ1|2009/04/01|0001 |■(ボタン) -------------------------------------------- 09BS87AA2|2009/04/10|0003 |■(ボタン) -------------------------------------------- ↑この1行目の■(ボタン)を押すと、顧客ID「0001」の請求書番号「09BB87ZZ1」の単票フォームが開き、 (請求書番号欄に「09BB87ZZ1」が入っている。) 2行目の■(ボタン)を押すと、顧客ID「0003」のフォームを開く・・・というような動きです。 説明が下手で申しわけありません。 お願いします。

  • Access 日付での抽出

    初めまして、Access初心者です。 ネットで探しましたが、見つからなかったので、教えて下さい。 Access2010を使用しております。 テーブルの受付日(年月日)の項目で、抽出したいと考えております。 抽出方法は、検索フォームにあるテキストに「年月」を入力して、ボタンを押すと、 帳票フォームで表記されるようにしたいと思っております。 また、IDをクリックすると単票フォームで表記されて編集できるようにしたいと 思っております。 なるべくVBAは使わないで、できればと思っておりますが、 ご教授いただけないでしょうか。 よろしくお願いします。

  • Access2000について

    Accessでの質問です。(排他処理について) フォームにとあるテーブル(リンクテーブルを使用 しています)のデータを一覧表示させています。 一覧表示させるテーブルの項目にはチェックボックスの 項目があり、フォーム上でそのチェックボックスを クリックして「削除」ボタンをクリックすると、 チェックがついたものだけをフィルタをかけて 表示させたあとで、モジュール内でそのチェックのついた データを削除する処理をしています。 このフォームを複数ユーザーで使用します。 それぞれのマシンごとにmdbはコピーして使うのですが、 リンクテーブル先は同じです。 (1)のマシンにてフォーム上でチェックボックスにチェックをつけ、「削除」ボタンはクリックしないまま、 そのままにしておいて、 (2)のマシンにて同じデータにチェックを付け、 「削除」ボタンクリックにてそのデータを削除したあと、 (1)のマシンにて「削除」ボタンをクリックすると、 (1)のマシンのmdbが異常終了してしまいます。 どうやら(1)のマシンが削除させようとして フィルターをかける時点で、既に(2)のマシンによって そのデータはテーブルから削除されているので 異常終了しているみたいです。 これを異常終了させないようにするには どうしたらいいのでしょうか? わかりづらい文章になってしまってすみません。 どうかアドバイスを宜しくお願いします。

  • MS Access2000のフォームの表示方法について教えてください。

    図1、データが5000件位の製品テーブルがあります。 図1項目名の番号に対する名称等は別のテーブルにあります。 図1(テーブル) ----------------------------------------------------------  製品番号 | 予算番号 | 新製品番号 | ・・・ | ・・・ ----------------------------------------------------------  3310001 | 3230002  |  ・・・   | ・・・ | ・・・  3310001 | 3230002  |  ・・・   | ・・・ | ・・・  3310010 | 3230015 |  ・・・   | ・・・ | ・・・ ・      ・          ・      ・ テーブル図1を使ってクエリ又はフォームで、「材質番号」という項目を追加して図2のような感じでフォームを作成したいのです。 材質番号という項目はベースとなる図1テープル、図1クエリには無く、別テーブルになっています。 図2(フォーム) --------------------------------------- |製品番号|(製品名称テーブルより製品名) | --------------------------------------- --------------------------------------- |予算番号|(予算名称テーブルより予算名称)| --------------------------------------- ---------------------------------------- |材質番号|(材質名称テーブルより材質名称)| ---------------------------------------- なお、作成するフォームは各番号と名称を使用してのデータ検索のみで、入力はしません。 ちょっと質問がややこしくなってしまいましたので、簡単にやりたいことを言いますと、製品フォームにまったく関係の無い材質テーブルの材質番号を、製品フォームに表示させて、検索、閲覧したいということなのです。 Accessもですが、VB&VBA等初心者ですので、できれば使用しない方法がありましたらよろしくお願いいたします。

  • Access マスターテーブル

    Accessについて。 テーブル1がID(主キー)、注文日、商品番号、納期など入力欄の項目で、テーブル2が商品番号(主キー)、商品名で商品のマスターテーブルになっています。 商品番号を入力すれば商品名が表示されるようにクエリを作成し、そのクエリからフォームを作っています。 ここまでは良いのですが、新しい商品番号を入力したときに限りフォームから商品名も入力する事でマスターテーブルに登録されるようにしたいのですが、どうすれば良いでしょうか?

  • oracle8に接続、Access97での質問。自動でIDを取得するには…

    仮にoracleのテーブルのデータ(02EE9001、02EE9002)があるとしAccessのフォーム上でIDコードを入力しなかった場合自動でIDコードを割り当てられるようにしたいのです。たとえば今Accessのフォーム上でIDコードを入力しないで登録した場合、02EE9003が自動で割り当てられるようにしたいのですがどうすればいいですか?ちなみ16進数でIDコードを割り当てています。しかも、02EEは固定です。仮にコードを割り当てられなくなったときは「空きIDがありません。」というようなメッセージも出したいのです。どうかよろしくお願いします。かってなことばかりですみません。

  • Accessについてです。

    アクセスのフォームで、番号を入力したらその番号の項目まで自動で入るように作りたいのですが、どうすればいいのでしょうか・・。(番号、項目はテーブルに入っている情報です) 1 保育園 2 幼稚園 3 小学校 とあって、1を入力すれば 別の枠に保育園と自動的に表示されるようにしたいのです。どなたか分かる方いましたらお願いします。初心者の質問ですいません。よろしくお願いします。

  • ACCESS97 のモジュールの中 何番目かの データを取得したい

    ACCESS97 のモジュールの中で SQLを使用しています。 SQLを使用して あるテーブルの任意のレコードを選択したいのです。 例えば テーブルAが下記のようにあるとします。 項目 名前 番号 A 001 B 003 D 004 という場合に名前Bの番号003を取得したいのです。 データとしては、"2"番目の2 は取得可能です。  (フォーム上のテキストBOXで入力) Set DATABASE = CurrentDb() strSQL = "SELECT * FROM テーブルA WHERE " strSQL = strSQL + "**** = '" & **** & "' ;"     ↑ここに条件をどのように持てばいいのでしょうか? ※ ここで、名前の項目ではキーとなる項目は得られません。   今回は 何番目のデータを取得したい ということが可能かどうか    教えて頂きたいと思います。