みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
お世話になっております。また質問させて下さい。
環境:Win FM11
材料表をこちらで指定したレイアウトのままエクセルで保存したいと思っています。
データベース上には下記の様に①~⑤のフィールドがあり、それが150個ほどあります。
【001】①材料コード ②材料名 ③数量 ④単位 ⑤単価
【001】①材料コード ②材料名 ③数量 ④単位 ⑤単価
.
.
【150】①材料コード ②材料名 ③数量 ④単位 ⑤単価
この情報をエクセル形式でエクスポートしようとすると、通常は下記のように横1列に並んでしまいます。
【001】①材料コード ②材料名 ③数量 ④単位 ⑤単価 【002】①材料コード ②材料名 ③数量 ④単位 ⑤単価
これを一番上の形で縦に並べてエクセルで保存したいのですが、やはり不可能なのでしょうか。
初心者なりにいろいろ調べてみたのですが、こういった方法が見つからずお手上げ状態です。
そこでお聞きしたいのですが、
1.そもそも、エクセルDL時ののレイアウトを設定できるのか
2.設定できるのであれば、どの様にやれば良いか。また、初心者でも設定出来るのか
どなたか教えていただけませんでしょうか。よろしくお願いいたします。
150個ほどあるのは、レコードですよね。
ならば、エクスポートした時点で、レコード間は改行で区切られ、エクセル上では次の行に入るはずですが。
Offline
実はレコードではなくフィールドなのです。
<材料テーブル>
①材料コード ②材料名 ③数量 ④単位 ⑤単価
<材料表テーブル>
・製品名
・顧客名
・【001】①材料コード ②材料名 ③数量 ④単位 ⑤単価
・【002】①材料コード ②材料名 ③数量 ④単位 ⑤単価
.
.
・【150】①材料コード ②材料名 ③数量 ④単位 ⑤単価
材料テーブルというものがありまして、そこから材料表テーブルへリレーションをして、材料データを呼び出しています。
そんなテーブルありえません。
ポータルで150レコードにしてから考えて。
フィールドの中に改行で入っているのでしたら、Excel側で作業を行わないと無理です。
Offline
リレーションも150個あるということかな・・・
別テーブルから150回インポートすると何とかなる? :cool:
Offline
説明不足ですみません。リレーションも150個あります。
システム概要は下記です。
<材料テーブル>
A工場:部品コード
A工場:部品名
B工場:部品コード
B工場:部品名
<材料表テーブル>
顧客名
製品名
A工場:部品コード1
A工場:部品名1
B工場:部品コード1
B工場:部品名1
・
・
A工場:部品コード150
A工場:部品名150
B工場:部品コード150
B工場:部品名150
<レイアウト>
材料データ入力画面
A工場入力画面
B工場入力画面
上記の様なデータベースを作成しており、A工場とB工場からひとつの材料表を閲覧できる様な形にしてあります。
また、材料自体は同じものなのですが、A工場とB工場では別の部品コード(それぞれで全く異なる)を取得し、それぞれで管理しています。
このシステムを作成する際、以前こちらで教えていただいた双方向ルックアップを使用して作成しました。
(ポータルについては色々試してみたのですが、上手くいかずに断念しました)
また、当初想定していたよりも材料点数が大幅に増えてしまい、その分フィールド、リレーションも増設した結果、現在の150という数字になっています。
ここで入力された材料表を、それぞれの工場の材料コードでダウンロードしたいと考えています。
1つのグローバルフィールドに、タブ区切り・改行区切りで連結して、それをフィールド内容のエクスポート
これをエクセルで開くと、そのままで区切りを認識できるようです。
がんばって、ポータルで作り直したほうが早いと思いますが。
そうすれば、リレーションも数個ですみますし、あとの処理もごく単純になります。
Offline
>Lister様
すみません、イメージできていないのですが、最終的にエクセルでダウンロードした際は横ではなく縦に情報が並ぶのでしょうか。
それぞれ入力する材料コードが異なってもグローバルフィールドは使用できるのでしょうか。
初心者な質問ですみません。全てのレイアウトに画像を表示させる時くらいしかグローバルフィールドを使用したことが無いので。。。
>Shin様
ポータルを使用すれば、希望した形でエクセルでダウンロードできるようになるのでしょうか。
ポータルがどういうものなのか、どの様にすれば使えるのか理解できていないので勉強に時間を取られてしまいそうです。
ポータルにしないと、そのうち破綻しそうな気がしますけど
計算フィールド作って、グローバルにする
A工場:部品コード1 & Char(9) &
A工場:部品名1 & Char(9) &
B工場:部品コード1 & Char(9) &
B工場:部品名1 & Char(13) &
A工場:部品コード2 & Char(9) &
A工場:部品名2 & Char(9) &
B工場:部品コード2 & Char(9) &
B工場:部品名2 & Char(13)
これを「フィールド内容エクスポート」して開いてみればわかります。
実際は対象レコード全部を入れるので、全置換とかスクリプトでLoopとかになりますが。
ポータルで作れば、関連レコードへ移動、エクスポート、という2ステップ+α で作れますよ。
ポータルで作らないならば、Listerサンの書かれている計算式を、450行書くことになりますね。
Offline
Listerさん、Shinさん
ご回答いただきありがとうございます!
>Listerサンの書かれている計算式を、450行
これは…正直しんどいですね。やはりポータルで作り直した方が無難そうです。
しかし、ポータルのイメージは湧くのですが、今のところことごとく設置に失敗していて若干諦め気味なのですが、初心者向けに簡単にご説明いただけませんでしょうか。(どこにどのフィールドを設置してどんな風にリレーションすれば良いのか、等)
それとも、ポータルの質問はスレッドを分けた方がいいでしょうか。
個人的にはポータルを組む事~元々の質問であるExcelのDLフォーマット設定までを一貫で教えていただきたいと思っているのですが。。。
材料表テーブル 材料詳細 材料テーブル
材料表コード = 材料表コード
製品名 材料コード = 材料コード
顧客名 数量 材料名
金額 単位
単価というリレーションを張ります。
材料表テーブルのレイアウトで、材料詳細をポータルで表示し、材料名、単価、数量、単位、金額 を表示させれば良いですよ。
Offline
超初心者ですみません。
<材料詳細>というテーブルを新たに作成し、そこに数量と金額のフィールドを作るのでしょうか?
<材料表テーブル>
材料コード
製品名
顧客名
<材料テーブル>
材料コード
材料名
単位
単価
<材料詳細テーブル>←?
材料コード
数量
金額
また、今製作中のシステムの一番ネックは、A工場で入力した内容をB工場の材料表へ自動的に変換(逆もあり)することなのですが、この場合はポータルのリレーションはどうなるのでしょうか?
材料テーブルの内容を追加すれば良いです。
<材料テーブル>
統一材料コード
材料コード A工場
材料名 A工場
材料コード B工場
材料名 B工場
単位
単価
としておき、統一コードでリレーションを張ります。材料コードとしては、入力時はどちらかのコードに統一しておき、後処理で別々にするか、別の統一コードを用意するか、でしょう。
材料詳細にもその統一コードで運用します。
材料テーブルから単価を関連フィールドとして持ってきて、数量をかけると、材料ごとの金額になります。それを材料テーブルで合計すれば、総計が求められます。
Offline
Pages: 1
[ Generated in 0.007 seconds, 9 queries executed - Memory usage: 596.16 KiB (Peak: 612.7 KiB) ]