- 締切済み
ACCESSで値を代入できないとは?
ACCESS2000を使用しています。 フォームを作り、画面のテキストボックスに値を入れると、エラーになります。 エラーコードは 2448。 エラーメッセージは オブジェクトに値を代入できない と出ますが、ヘルプが参照できません。 どういうことなのでしょうか。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- oribeyaki
- ベストアンサー率45% (18/40)
返答が遅くなりましてすいません。 >連結<->非連結はプロパティでマニュアル変更が出来そうな気がするのですが、>その方法が見つかりません。 マニュアルでプロパティを操作する場合、 「プロパティ」ウィンドウの「データ」タグの「コントロールソース」を設定します。 連結コントロールの場合、ここに連結されている項目名が表示されています。 非連結にするには、ここを消してください。 (普通にBackSpaceとかで消えます。) これでOKです。 >今度はクエリーで2つのファイルをマッチングして作成したのですが・・・・ これは、別の問題になると思いますので、これでもう一つ質問を投げてはいかがでしょうか? そうすればこの質問を見た方以外の方の目にも触れますから、それだけ回答が来る可能性が高くなりますよ。 また、記入していただいた内容だけでは原因を特定するのは厳しいと思いますので、今回で補足していただいたようにサンプルソースや、テーブルの関係、どのタイミングでどのように操作したか、エラーNoはこれ・・・ といったようにできるだけ細かく書いたほうが回答される可能性が高いと思いますよ。(めんどくさいんですけどね。) では、がんばってください。
- oribeyaki
- ベストアンサー率45% (18/40)
これが原因かわかりませんが、 こちらで試して同じようなエラーが出るものをお知らせします。 1・連結テキストボックスの連結項目が、 現在のフォームにリンクしているテーブルの項目にない。 2・連結テキストボックスの連結項目が、 オートナンバー型などの入力を許さないデータ型になっている。 別のフォームからコピーされたものということなので、 そのテキストに設定されている項目が違う可能性はあります。また、内部的にそのリンクの設定がコピーによって変になっている 可能性もありますので、一度そのテキストのデータ項目を再設定して みてはいかがでしょうか? コントロール自体をコピーして使うということは通常やってます。 そのほうが効率いいですからね。 ですから、やり方自体は問題はないはずです。 駄目なようでしたら補足してください。
- mnabe
- ベストアンサー率33% (427/1283)
テキストボックスに値を入れるタイミングは? ユーザが入れるの? → 例えば、キーボード等から値を入力するのですか? これでエラーになる様なら、その時のコードと作成手順を書いて下さい。また、再現方法等が解りましたら、教えて下さい。 コード(VBA)から入れるの? この場合が多いと思いますが、どのタイミングでいれるかでエラーになります。フォームのロード時では、またテキストボックスのオブジェクトができていないので、上記の様なエラーになります。その場合には、フォームのアクティブ時等にコードを移して実行してみて下さい。
補足
回答ありがとうございます。 説明が不足していました。 コードは No.1 の補足に記述しました。 フォームをウィザードで作成したのですが、うまくいかない部分は、別のフォームからコピーして張り付けたテキストボックスです。 こんなやり方は出来ないのでしょうか。 よろしくお願いいたします。
- oribeyaki
- ベストアンサー率45% (18/40)
エラーの状況をもう少し詳しくうかがってよろしいですか? >フォームを作り、画面のテキストボックスに値を入れると、エラーになります。 テキストボックスに値を入れるとは? テキストボックスにキーボードから入れている。 VBAで、テキストコントロールに値を代入している。 などなど また、VBAでやられているのでしたら、エラーの出るコードも教えていただけると助かります。
補足
回答ありがとうございます。 説明が不足しておりました。 コードを記述します。 Private Sub Furigana_Change() '============================================== Set SB = DBEngine.Workspaces(0).OpenDatabase("\acs\skw.mdb") Set CUrc = SB.OpenRecordset("custom") Set CTrc = SB.OpenRecordset("karte") CUrc.Index = "cualtkey" CTrc.Index = "ctaltymd" CUrc.Seek "=", Me!furigana Me!shimei = CUrc!shimei ' (1) ok CTrc.Seek "=", CUrc!cuscd Me!raitendate = CTrc!raikyakudate ’(2) ok Me!PermaKusuri = CTrc!PermaKusuri ' (3) err End Sub (1)はウィザードでフォームを作成しました。 (2)は非連結です。 (3)は 元は別のフォームで作成し、コピーして、該当フォームに貼り付けたのです。 どうもこのやり方がうまくいかないのか指定の仕方が違うのかと思います。(2)も最初は(3)と同様でしたが、うまくいかないので非連結にしました。 (2)と(3)のフォームレイアウトは帳票形式です。 (1)は単票形式です。 このぐらいでお分かりでしょうか。
お礼
早速回答いただきましてありがとうございます。 ウィザードで作成するということは、フォームに貼り付ける項目は非連結以外はすべてテーブルにリンクしていなければなら無いということですね。 連結<->非連結はプロパティでマニュアル変更が出来そうな気がするのですが、その方法が見つかりません。 今度はクエリーで2つのファイルをマッチングして作成したのですが、マッチングキーに新しい値をセットしようとすると、エラーになります。 テーブル”xxx”のレコードに、'一'側と対応するレコードがなくなります。 と、いうエラーが出て、またヘルプを参照できません。 結合プロパティで、両方一致するものだけという条件をはずしてあるので構わないと思ったのですが、うまくいきません。 それに、こういう処理をすると、ACCESSが正常に終了しません。 どういうことなのでしょうか。