コントロールソースに「Name」と書いたときは期待通りにテーブルのNameフィールドが表示されますが、「=Trim([Name])」と書いたときにはフォームの名前が表示されてしまいます。これを回避する記述方法はあるのでしょうか。
他にこういったAccess特有(VBA特有?)の記述方法がありましたらよく使うものをいくつか教えていただけるとありがたいです。
http://www.mahoutsukaino.com/ac/ac2000/ac2000/kihon2/s017.htm
MS-Access2000超入門部屋--基本操作をさらに考える
こちら参考になると思います。
http://www.mahoutsukaino.com/ac/ac2000/ac2000/report/01.htm
MS-Access2000超入門部屋--印刷するときにレポートのレコードソースを入れ替える
ご参考ください。
ありがとうございます。
ですが、レコードソースの入れ替えとはちょっとちがうような・・・。
http://ww3.tiki.ne.jp/~kaya/Ac_tips.html#Tips0_001
ミニミニ Access Tips
ヘルプにものっていますが、NameはVBの予約語であるためこのような動作を起こすので、会費のためには面倒ですが、Trimを行う関数を一つ作成して表示するのがよいかと思います。関数の作成方法はお分かりでしょうか?
ありがとうございます。
予約語ですか。確かに・・。
しかし、Nameと書くだけのときはちゃんと動くんですよね。そこも不思議な感じです。
関数を作る方法は知っています。
http://support.microsoft.com/default.aspx?scid=fh;ja;acc2002
Access 2002 Solution Center
恐らく、”Name” という名称が、
フォームの ”Name” プロパティとして解釈されているものと思われます。
できれば、フィールド名を直されることを推奨します。
また、コントロール名(テキストボックスなどのオブジェクト名)と
レコードソースで使うフィールド名がバッティングしていた場合も
不具合が起こる可能性があります。
例えば
コントロール名:Field1
レコードソース:=Trim([Field1])
とかすると、エラーになる可能性があります。
ですので、なるべく、コントロール名は、
”txtField1”(プレフィックス+フィールド名)のように
名称がバッティングしないように注意する必要があります。
例)
コントロール名:txtField1
レコードソース:=Trim([Field1])
ありがとうございます。
今まではそのような工夫でやってきたのですが、
なにかいい方法があるのかなと質問させていただきました。もう少し待ってみます。
http://www.hondarer-soft.com/cx/pukiwiki/pukiwiki.php?Software%2...
[hondarer-soft] to [cx20.main.jp]
URL はダミーです。
レコードソースのフィールド名の指定を
”テーブル名” + ”.” + ”フィールド名”
にするとうまくいくかもしれません。
=Trim([TableName.FieldName])
ありがとうございます。
この場合、「このオブジェクトには、オートメーションオブジェクト ’テーブル1’ は含まれません」というエラーになりました。
http://www.hatena.ne.jp/1084260966#
Access2000を使用しています。テキストボックスへの式の書き方なのですが、たとえばレコードソースに指定されているテーブルにNameというフィールドがあるとします。 コン.. - 人力検索はてな
アドレスはダミーです。
AccessはSQLの中でVBの関数が使えたりします。
ですので、レコードソースへ以下のように書くと「名前」というフィールド名が「Name」をTrimしたものになります。
SELECT *,Trim(Name) As 名前 from テーブル1
ありがとうございます。
SQLのなかでVBの関数がつかえるというのは新たな発見でした。
ただ、Nameは例ですので、うまく書く記述方法があるのかなと思いました。
実際にはSQLサーバーのストアードプロシージャが返すレコードセットを使用しています。
出来るだけ簡単に解決したかったのですが、どうもなさそうな感じがしてきましたが、もう少しだけ待ってみます。
2度目の書き込みです。特有の記述方法についてはこれなどどうでしょう。
ここはAccessではまった人のための掲示板です。(リニューアルで書き込みはできないようですが…。)
コントロールソースでの書き込みの違いですが、
Nameだけの場合は、フォームのレコードソースによるドロップダウン制御ができることより、Accessによるフィールドリストをあらかじめ引っ張ってきているためフィールドでのNameが強いのに対し、
=Trim([Name])とやると、フィールドより予約語の方が強くなるのではと思います。
それにしても、予約語はフィールド名に使用できないというエラーメッセージでも出してくれるといいんですがね…。予約語はとかくバグが出やすいので避けてくださった方が無難です。Nameなんていかにもつけてくださいって名称ですから。
ありがとうございます。
Accessって非常に便利ですけど、簡単なことではまってしまったりしてその際にはこの「はてな」など本当に助かります。
ありがとうございます。
基礎の基礎をまとめたサイトはいいですね。一通り勉強したいと思います。しらなかった便利な機能を発見しそうで楽しみです。ですが、ちょっと希望の答えは(とりあえずこのページにはないようです。)