みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
いつもお世話になります。
WIN10 Filemaker12を使用しています。
住所録を作っています。
5丁目4番3号 5丁目4-3 等の入力をさせたくなく(5-4-3の表示にさせたい)
それで
フィールドに「丁目」という文字を制限させてメッセージを出そうと考えています。
入力値の制限
Filter(Self; "丁目")=""
これだと「丁」 「目」 各一文字に反応します。
「丁目」と言う文字列に反応させるには、どうしたら良いのでしょうか?
Offline
not ( Filter(Self; "丁目")="丁目" )
住所の中に丁目が入るのがあったような気がしますが。(花巻市下北万丁目)花巻市十二丁目、花巻市東十二丁目などは、丁目が町名の一部です。
また、郵便番号に対応する住所で、丁目までを含んでいるところがありますが、その処理には支障ありませんか。今治市桜井など(これは、全国に多数残っています)は、○丁目と○番地で郵便番号が違います。
Last edited by Shin (2021-11-07 11:06:48)
Offline
Shinさん
いつも有難うございます。
やはり丁目と言う町の名前があったですか?
平行して丁目と言う住所を調べてはいたんですが?・・・・
良い方法があればと思いますが、ほぼ広島県の住所なので
入力規則を設けてるんですが担当がコロコロ変わるもんで取り敢えずですか
これで対応しておこうと思います
Offline
広島県だけならば、広島県廿日市市大野(1、2丁目)で問題が出そうですね。住所から郵便番号が引けなくなります。
Offline
Shinさん
住所・・・・とても詳しいですね!
本当に助かります。
Offline
入力用のフィールドを〇〇丁目より前と後ろで分けるのはいかがでしょうか。
後ろは
数字と”-”だけに制限をかければいいでしょう。
Offline
それよさそうな気がします。
どこの情報か確認取れなかったんですが、「A市B町C丁目D番E号」という地名の場合、「B町」という区分はなくて、「B町C丁目」までが一つの名称?だと聞いた覚えがあります。
慣用的に「B町C-D-E」等でも通るし、うちの市や県の話でなく一般的に日本全体でそうなのか、とか結局正しい情報なのかわからないのですが...
例えば、
9480063 新潟県十日町市高田町1丁目
9480064 新潟県十日町市高田町2丁目
9480065 新潟県十日町市高田町3丁目
9480056 新潟県十日町市高田町4丁目、5丁目、6丁目
という変わったものもありますね。
よく見かける方法は、
郵便番号を入力させ、それに該当する住所はそのまま使う、複数該当する場合(上の4丁目以降)は、選択させる、
それ以降の番地などは別フィールドにする、
でしょうか。ただ、それ以降も、建物名や部屋番号が入るので、それをさらに別フィールドにしないならば、制限できません。同一番地に建物が複数あり、建物名も、単なる記号ではなく、確か花の名前がカタカナ(ローズ館とか)でついていたのをみた記憶があります。
Last edited by Shin (2021-11-08 14:10:32)
Offline
チポさん himadaneeさん Shinさん色々なアドバイス感謝します。
チポさん フィールド分けて5-2-4と言うような数値のみ入力された場合
CSVに出力した時に月日に変換されて困っています。良い対処法ありますか?
5-2-4数字とハイフンのような入力を制限かけることは可能なんでしょうか?
引き続きアドバイスお願いいたします。
Offline
YMDへ変換されるということは、スプレッドシートへ取り込んでいるのでしょうね。そちらでの使い方にもよるでしょうが、計算フィールドで住所を1個のテキストにして、それをエクスポートするといいです。
Offline
> CSVに出力した時に月日に変換され
分かりません。。
テキストタイプにして、入力値の制限で
Self = Filter ( Self ; "0123456789-" )
とすればいいでしょう。
番地以下の建物などは、さらに別フィールドにして、
「建物等」
とかにすればいいのでは。
Offline
フィールドを分ければいいでしょうが、1-2-3-A-203 とか 1-b-303 と書かれてしまうと処理難しいですね。
ふと思い出したのですが、番地以降(郵便番号に含まれない)が甲乙丙の町があったような記憶があります。
Offline
チポさん Shinさん いつもありがとうございます。
Shinさんの「計算フィールドで住所を1個のテキストにして、それをエクスポートするといいです。」どうすれば良いのか解りません?
フィールドにこのように入力されたら1-2-3-A-203 とか 1-b-303 CSVに出力しても問題ありません。
現在住所1と住所2の 2つのフィールドで住所を入れています。住所1が17文字までに設定してて
入らなくなった時に 住所2の方に入力してます。
3-5-6 この構成だけでフィールドに入力されえるとCSV出力時2003/5/6となります。
3-15-6 だと 3-15-6に出力されます。
現在入力規則として前後に町名、マンション名を入れてもらうようにしていますが
入力担当が変わると3-5-6だけで入れる方がいるので制限したいのですが
チポさんのアドバイスの
「テキストタイプにして、入力値の制限でSelf = Filter ( Self ; "0123456789-" )」
これだと町名3-5-6といれても制限がかかってしまいます。
Offline
> 町名3-5-6
町名と丁目以下を入力ですか?
町名までのフィールドと、それ以降を別フィールドに
がわたくしの提案ですが。。
一つのフィールドにするには、フィールドを
”&”
でつなぎます。
Offline
チポさん お世話になります。
住所1 住所2 住所合体と言うフィールドを作っています。
住所合体は”&”で繋いでいます。
小さなタックシールに印刷する場合があります。文字の大きさを考慮したら17文字が限界です。
それで2行に分けています。
バックアップとしてCSVに出力したり他のパソコンで入力したものを出力して
メインパソコンにインポートしたりします。
その時に丁目以下が3-5-6のみフィールドに記入されていますと問題が出てきます。
3-5-6 2番目数字5が13以上の数字 3番目数字6が32以上数字で有れば問題ないようです。
あと3-5-6-3となれば良いのですけど
ハイフンで繋がれた数字のみの状態のフィールドが制限出来ればと思っているんですが・・・・
古市3-5-6 とか 3-5-6 501号は、制限外になれば
こんな事は難しいでしょうか?
Offline
問題は
入力時の制限
CSVエクスポート
二つあります。
これらを切り分けて考えましょう。
入力時の問題ですが、、
> 3-5-6 2番目数字5が13以上の数字 3番目数字6が32以上数字で有れば問題ないようです。
> あと3-5-6-3となれば良いのですけど
これが全く理解できません。
再度確認します
> テキストタイプにして、入力値の制限で
> Self = Filter ( Self ; "0123456789-" )
この設定になっていますか?
Offline
> バックアップとしてCSVに出力したり他のパソコンで入力したものを出力して
> メインパソコンにインポートしたりします。
ということですので、FM での運用がメインですよね。
CSV書き出しの目的がバックアップなのでしたら、FMのファイルとしてバックアップを持たせればいいのでは。または、mergeファイルとしてテキストにしておけば十分なのでは。
エクセルなどへ取り込んで、そちらで何かの作業があるのでしょうか。
Offline
> 3-5-6 2番目数字5が13以上の数字 3番目数字6が32以上数字で有れば問題ないようです。
これは日付に変換不能な値ということでしょう。
CSVをExcelで開いたときに日付に変換されてしまうのは、Excelの側の問題なので、FMとは関係ないです。
FMでCSV保存して、そのままインポートすれば日付にはならないでしょう。
チポさん
ご相談にのって貰い大変感謝します。
Self = Filter ( Self ;"0123456789-" )
これは、もう一度確認してみます。設定が良くなかったかも知れません。(今日は、家に戻れません明日確認します。)
3-5-6 しか入力されてないとCSVに出力してエクセルで開くと
3-5-6⇒2003/5/6となります。
3-13-6⇒3-13-6
3-5-32⇒3-5-32
と入力したように表示されます。
5-6だと5月6日となります。
3-5-6-3 だと3-5-6-3と表示されます。
3-5-6や5-6などは、CSVに出力してエクセルで開くと日付に変換されてしまいます。
Shinさん
アドバイス有り難うございます。
基本は、バックアップなんですが
エケセルとして加工して一覧を渡してあげたりする事があります。
バックアップはテキストにか、メインがFMでしたら、そのファイルを別名で保存しておいても十分でしょう。
エクセルに書き出すときには、住所を結合したテキストで書き出すといいのでは。または、直接、xlsx で書き出せばどうでしょう。
Offline
そういうことですか。。
Excelで開くのなら、Excelで書きだせばいいのでは。
Offline
チポさん Shinさん 親切丁寧に説明して頂き本当にありがとうございます。
> テキストタイプにして、入力値の制限で
> Self = Filter ( Self ; "0123456789-" )
チポさん上記の件 サイド確認しましたが反応しません。
前に notを付けると制限できましたが
古市5-9-8と前につけても制限されて何故だか空白にしても制限され出しました。
アドバイス頂いたExcel出力・・・・
住所結合の出力・・・この発想になんで気付かなかったと思いました。
tab出力だと問題が無く入出力が出来ました。
Excel出力・・・・
試してみると住所フィールド3-5-6は、問題なく出力されていて
郵便番号731-0225 電話 082-815-3946 等が ハイフンと先頭0がなくなった状態で出力されました。
これは、フィールドが数値になっているからだと気づきテキストに変更したら
問題なくExcelで出力出来ました。
それとExcelの状態でCSVと同様にインポート出来ましたので
バックアップと言う他の手段をする必要も無いようです。
3-5-6のみ不可と言う制限が必要なくなり悩んでいたことが解決出来ました。
数値フィールドとテキストフィールドの違いメリットデメリットって何かあるのでしょうか?
最後まで面倒見て頂き本当に感謝しております。
Offline
入力値の制限は、デフォルトでは入力時のみのチェックです。常時にすると反応するはずですが、おそらく使いにくくなります。
not をつけてしまうと、動きが逆になりますよ。
Offline
Pages: 1
[ Generated in 0.008 seconds, 9 queries executed - Memory usage: 572.69 KiB (Peak: 593.23 KiB) ]