1

私はこれまで Access で実際に何もしたことがなかったので (MySQL と PHP で多くのことを行ってきましたが)、これは私の最初の試みのようなものです。2 つのテーブル、tblShapes と tblExamples です。それらは、tblShapes (テキスト) の主要な「JCH Shape」によってリンクされています。JCH Shape を選択できるコンボボックス付きのフォームを作りました。次に、フォームを再クエリして、サブフォームに適切なデータを入力できるようにします。

ただし、一部のデータはアスタリスクのみで区別されています。したがって、現在、私が持っている行の列 JCH Shape の値は次のとおりです。

  • (g)CVC
  • (g)C*V
  • CV*CV
  • CVCV

最後の値「CVCV」を追加するまでは問題ありませんでした。クリックするたびに、他のデータを選択しようとすると、フォームは再クエリを実行しますが、CVCV を選択しない限り、フォームを閉じて再度開くまで空白のデータが表示されます。他のすべての関連データが失われたとフォームが判断した場合。

ここでは間違いなくアスタリスクが問題ですが、CV*CV と CVCV、または唯一の識別文字が * である他の形式を区別する場合にのみ問題になります ((g)CVC と (g)C*V には影響しません)。たとえば、(g)CV を作ってみたところ、同じ問題が発生しました)。理解できない。Requery を呼び出すときに何か問題が発生していると考えていますが、Access が内部でどのように機能しているかを十分に理解していないため、* が誤ってワイルドカードとして解釈されているのか、それとも間違っているのかを知ることができません。

ファイルにリンクしました。めんどくさいのは承知ですが、初めての試みです。どんな助けでも大歓迎です:

http://the-polyglot.net/uploads/other/SP-JCH-Words.accdb

ありがとう!

編集:私がアップロードしたバージョンでは、最初のエントリがクリックされた後、すべてのエントリに対してそれを実行しているようです。まったくわかりません。5分前にCVCVをクリックしたときだけそれをやっていて、私がしたことはAccessを閉じて再開したことだけでした.

4

2 に答える 2

0

私は問題を解決したと思います。メインフォームのレコードセットで条件を使用していましたLike [Forms]![Add Record]![ShapeCombo]

したがって、これLike CV*CV は場合によっては派生します。これを文字通りの一致に変更したところ、正常に動作しました。ただし、Like 式で感作文字をエスケープする簡単な方法があるかどうかはまだ疑問に思っています。*たとえば、手動で文字列を置換して に変更する以外の方法を知っている人はいます[*]か? 私の問題は修正されましたが、意図したワイルドカードとリテラル アスタリスクの両方で Like 式を使用する必要がある場合、どのように解決するのか興味があります。

于 2013-06-12T14:00:21.450 に答える
0

まず、tblShapes テーブルに Autonumber 主キーを使用して、各「Shape」が一意の値を持つようにする必要があります。テーブル間の関係を示すために、tblExamples に外部キー値が必要です。

次に、(最初のポイントに従うかどうかに関係なく)、メイン フォームと 2 つのサブフォームがあります。

メイン フォームでは、RecordSource を何も設定しないでください。

サブフォームの LinkMaster プロパティは、コンボボックスの名前に設定する必要があります。

コンボボックスの場合は cmb、テキストボックスの場合は txt のように、コントロール名の前に 3 文字を付けます。これにより、コードがより明確になり、フィールドとコントロールが同じ名前を訴えている競合が回避されます。

幸運を!

于 2013-06-12T08:46:06.143 に答える