2017-03-24 14 views
0

私は仕事中に作ろうとしている在庫データベースを持っていて、いくつかの問題について過去数日間、数回投稿しました。私は経験がほとんどないので、ほとんどがYouTubeのチュートリアルに従っていて、オンラインで歩いています。フォームのテキストボックスからクエリにデータを取り出し、テーブルに出力しようとしていますか?

ID番号、製造元、モデル番号などのインベントリ情報が格納されるテーブルが基本的にあります。次に、ユーザーが入力するテーブルの各フィールドのテキストボックスを持つフォームがあります[追加]、[削除]、[編集]ボタンをクリックすると、テキストボックスに入力して新しいレコードを追加し、[追加]をクリックするか、コンボボックスまたはリストから現在のレコードを選択して編集したり、関連付けられたボタン

私はこの問題を解決しようとしても、ここで何をアドバイスしても、過去2日間エラーが発生していましたので、今私はちょうどそれを行うためにクエリを使用します。

今すぐメインテーブル、一時テーブル、フォーム、およびこれらのクエリがあります。 1. tempテーブルを消去するクエリを削除します。 2. tempテーブルからレコードを取得して追加するクエリを追加します。それらを私のメインテーブル 3.フォーム上で選択したレコードを取得し、それをテンポラリテーブルに追加するクエリを追加します 4.メインテーブルのフィールドをテンポラリのデータに更新するクエリを更新します 5. delete新しいレコードに 1. Rを追加するための :メインテーブル

これは私の計画だったからメインフォーム上の選択したレコードを削除しますクエリ国連のクエリ1番 2.負荷形 3. [OK]ボタンをクリックした場合: 4.クエリの実行の2番編集 1.クエリの実行の1番 2.実行クエリ3番 ため

2.負荷フォーム 3. [OK]ボタンをクリックした場合: 4.実行クエリ4番

を削除する: 1.負荷のMsgBoxをはいいいえオプション 2ではいボタンをクリックした場合: 3.実行をクエリ番号5

Th私が問題を抱えているのは、クエリ番号3です。私が知っている限り、正確にクエリを作成しましたが、フォームに記入して追加をクリックすると、クエリは0行追加されますそれは一時テーブルに何も追加しません。

私はまた、テンポラリテーブルからデータを取得し、クエリを使用してメインテーブルに移動する方法を理解できないようです。

私はここでそれにスクリーンショットとIMGURポストにリンクしています: http://imgur.com/a/ffWge

任意のアイデア?

+0

あなた自身では難しくなっています。フォームをテーブルにバインドすると、すべてのクエリの内容とコードをスキップできます。それがAccessフォームの魔法です。アンバウンドフォームが好きなら、Visual StudioやWinformsのような別のツールを選択してください。 – Gustav

+0

レビューhttp://allenbrowne.com/AppInventory.html – June7

+0

私は過去の曳航の日にテーブルにフォームをバインドしようとしました。私はテーブルにフォームをバインドした別のデータベースを持っており、完璧に動作しています。私は文字通り何もしませんでしたが、フィールド名を変更し、コードに応じて名前を調整したので、実行することができません。私を信じて、あなたが何を知っている、グスタフと私が試みたと言っているが、私はそれを知っている。 –

答えて

0

私はこれに答えることを躊躇します。 GustavはすでにAccess Formsを意図したように使用することについて学ぶことについて大きなアドバイスをしてくれました。しかし、スクリーンショットからは、Accessクエリデザイナーの基本的な何かを誤解しているように見えます。あなたが望むように任意のクエリを書く必要はありませんが、ある時点では、クエリを適切に設計する方法を理解する必要があります。あなたは、クエリがテーブルにフォームから挿入したい場合は

、その後、テーブルのフィールド参照を基準にすべきではない、彼らはこのようにする必要があります:

  • フィールド:![フォーム] [frmInventory ] [ICN]
  • 表:{空白のまま}
  • 追加する:ICN
  • 基準:{空白のまま}

また、[tblIを除去[クエリの追加]ポップアップウィンドウで宛先テーブルを指定しているので、クエリウィンドウから[nventoryTemp]を選択してください。 SQLは次のようになります。

同様に、tempからメインテーブルにコピーするクエリも同様です。ポップアップウィンドウで宛先テーブルを指定しておく必要があります。したがって、[tblInventory]をクエリウィンドウから削除してください。また、条件行にあるフィールドのリストを削除します。 SQLは次のようになります。

INSERT INTO tblInventory (manu, model, serial, ...) 
SELECT tblInventoryTemp.manu, tblInventoryTemp.model, tblInventoryTemp.serial, ... 
FROM tblInventoryTemp 

のアクセスは、おそらくより多くの詳細を追加しますが、SQLの一般的な形式は、私が持っているものと一致する必要があります。

+0

私はグスタフが二日前に提案したことを試してみました。私はその方法でセットアップされた別のデータベースを持っており、完璧に動作します。これは非常に似ているので、コピーして、データベースの適切な名前とフィールドの名前を変更するだけで動作しますが、残念なことに、そうではありません。なぜなら、私はこれをやろうとしたのですクエリナンセンス。 –

+0

私たちはすべてあなたに手がかりを与えようとしているので、それに対応することは難しいです。私は前の2つの質問を見直しました。あなたは一度に多くの問題を解決しようとしているようです。あなたは、グスタフが提案したことを試し、あなたを信頼すると言っていますが、あなたは自分がこれに新しい人だとあなたは言っています。スクリーンショットとあなたの不満から、このアプローチが以前に働いていたかどうかに関わらず、フォームを正しく構築しているとは私は信じていません。あなたはいくつかのコメントに応答しましたが、VBAのデバッグと正確なエラー位置の指定などについて直接回答したわけではありません。 –

関連する問題