• 締切済み

Access:リンクテーブルマネージャテーブルにフィールドを追加したい

Access2003を使用しております 他のDBよりリンクテーブルマネージャを利用しデータを参照しております。 このテーブルにフィールドを追加したいのですが、単純にフィールドを追加することは出来ないので、新しいテーブルに追加フィールドを入力したいのですが、余分なデータを入力しないで行いたいのですがいい方法は無いでしょうか? 皆様のお知恵をお貸しください よろしくお願いいたします

みんなの回答

noname#79209
noname#79209
回答No.1

要は、 1.何かの都合で元DBをいじくれない。 2.ローカル側に別テーブルを設け、これにフィールドを追加し、   元DBに擬似的にフィールドが追加されたようにみせたい。 3.その際、元DBの全データをコピーするような無駄なことはしたくない。 少なくともリンク元のテーブルのレコードを一意にポイントできるキーフィールドデータはコピーする必要があります。 また、リンク元のテーブルが外部で逐次更新(レコード追加)されるようなものなら、 このリンクされたテーブルを使うときに、リンク元のテーブルの更新分がローカルテーブルに反映させるプロシージャを走らせる必要があるでしょう。

tokyokita3
質問者

お礼

vizzar様ありがとうございます。 1.ご指摘の通り、元のDBもシステムからの吐き出しでいじれない状況です 2.その通りです 3.4回/日 情報が更新されてしまうためにコピーで持ってくるのは現実的ではないと考えています やはり、キーフィールドのコピーは必要なのですね・・・ プロシージャを走らせるということですが、簡単に出来ることなのでしょうか? 難しいようであれば、今回のようなパターンで詳しく紹介されているようなHPがあったら紹介していただけたら幸いです。 よろしくお願いいたします。

関連するQ&A

  • Accessでフィールドを追加したい

    Accessであるシステムを作成しているのですが、いくつか不明な点があるのでアドバイスをお願いします。 「社員情報」をいうテーブルがあり、初期の状態で「社員番号」「氏名」「入社年月日」「年齢」とフィールドがあります。 このテーブルを基にフォーム「社員情報入力」も作ってあります。 ここで新たに、社員情報テーブルに「生年月日」「連絡先」など、フィールドを追加したいのですが・・・以下のような条件があるので、どうしていいのかわからず困っています。 【条件】 ・フィールド追加用のフォーム(新規フィールド名を入力させる)を作り、そこからフィールドを追加させる。(直接テーブルはいじらせないため) ・追加したフィールドを社員情報入力フォームに反映(表示)させたい ・追加したフィールドをレポートにも反映(表示)させたい このような条件でフィールドの追加は無理なのでしょうか? アドバイスや参考になるページを教えてください。 よろしくお願いします。

  • Microsoft Access:クエリのフィールドが消える

    仕事でWindows XP Professional、Microsoft Access 2003を使用しています。 Accessの知識は低いです(本を見ながらVBAを組んだりする程度)。 データベースは、5年ほど前にAccess 2000で作ったもので、ネットワークドライブにあり、現在、改良等はAccess 2003で行っていますが、データベースを使用するクライアントは、Windows 2000(Access 2000)とWindows XP Pro(Access 2003)の複数環境です。 データベースは、1つのテーブルに、1つの抽出クエリ、レポートはそのクエリから呼び出して表示すると考えてください。 レポートを表示させるときに、クエリからデータを引っ張ってくるのですが、数ヶ月前から、突然必要のない「パラメータの入力」ウィンドウが複数回表示されるようになりました。 直接の原因は、クエリに存在しているはずのフィールドが、数個消滅していて、再度クエリにフィールドを追加すれば直ります。 直してしばらく使えるのですが、4~5日経つと、また壊れるという状況です。 また、データベースには、1年以上大きな変更を加えていません。 レポートのラベル(単なる文字)や位置を変更するのみのメンテナンスしか行っていません。 ちなみに、このデータベースファイルのテーブルへは、別のデータベースファイルからも「テーブルのリンク」としてリンクされていますが、クエリやレポートは単独です。 個人情報を扱うファイルのため、外部に持ち出せず、職場でOK Waveにアクセスしづらい状況で、知識も乏しいことから、あまり詳しく提示できないのですが、勝手にクエリ内のフィールドが消えてしまう原因は、どういうことが考えられますか? 参考程度でも結構ですので、アドバイスをお願いします。 (この程度のレベルの人が、重要なデータベースを管理していることに一番の問題があるのは分かっているのですが…)

  • Access2000で、新規フィールドにデータを追加したい

    こんにちは。 あるテーブルに新しいフィールドを追加しました。 この新規作成フィールドすべてに特定の文字(例えば”日本”)を一括して入力するにはどうすれば良いのでしょうか。 データ数は250000程あるので、一括して入力したいのです。

  • access:テーブルからテーブルへ

    access2002を使用してます。 テーブル1とテーブル2が持っているレコードを合わせたいのですがどうしたらよいでしょうか? フィールド名とデータ型はまったく一緒です。 追加クエリとかいうの使うのでしょうか? 初心者です。お助け下さい。

  • Access2002でホームへフィールド追加

    Access2002を使っています。テーブルにフィールドを1つ追加したのですが、そのフィールドをフォーム(テーブルそのまま)に追加できません。 またフォームを作り直すのは面倒です。何とかならないものでしょうか。

  • ACCESS-リンクテーブルの設定で「値の要求」を”はい”に出来ない

    ORALCEのDBサーバにあるテーブルのいくつかを 「外部テーブルの取込み」→「テーブルのリンク」を使って、クライアントからACCESS経由で触れるようにしました。 しかし、いくつかのテーブルで、値の入力や行の追加が出来ないので困っています。 デザインビューをみると、「値の要求」の欄が ”いいえ”になっており、これを”はい”に変更することは出来ません。 なぜ、ACCESSからデータを更新できるテーブルとそうでないテーブルがあるのでしょうか? そしてどうすれば更新できるようになりますか?

  • 希望の位置へフィールドを追加するには?

    希望の位置へフィールドを追加するには? WinXP、Access2003を使っております。 テーブルに希望の位置へフィールドを新たに追加する為にはどうすれば良いでしょうか? テーブル名:顧客データ フィールド: 名称(メモ型) 住所(テキスト型) 担当営業(テキスト型) 取扱品目(メモ型) 備考(テキスト型) 1.メモ型をテキスト型へ変更するのが目的の為、   既存の「名称」、「取扱品目」のフィールド名の最後に「2」を追記します。 2.名称と取扱品目のテキスト型のフィールドを新たに追加します。 Private Subコマンド1_Click() Application.CurrentDb.TableDefs("顧客データ").Fileds("名称").Name="名称2" Application.CurrentDb.TableDefs("顧客データ").Fileds("取扱品目").Name="取扱品目2" Dim db As Database Set db = CurrentDb db.Execute "ALTER TABLE 顧客データ ADD COLUMN 名称 TEXT(255)" db.Execute "ALTER TABLE 顧客データ ADD COLUMN 取扱品目 TEXT(255)" db.close Set db = Nothing MsgBox "終了" End Sub 上記だと新しいフィールドが最後(一番下)に出来てしまします…希望の形は 名称2(メモ型) 名称(テキスト型) 住所(テキスト型) 担当営業(テキスト型) 取扱品目2(メモ型) 取扱品目(テキスト型) 備考(テキスト型) 以上、ヒント等ご指南よろしくお願いいたします。

  • ODBC接続で新しいレコードを追加できない

    OS XP SP3、ACCESS2003 DBはSQLserver2005express です SQL Server Management Studio Express を使って 新しいDB、テーブル、項目は作成できました。 また同じツールを使って手入力でデータを追記することもできます 質問はこのテーブルを ACCESSからODBC接続して 追加クエリーを実行したいのですが リンクしてテーブルを開いた時点で新規レコードが追加できない状態です。 サーバーの更新をしたく、少ないデータであれば手入力でも 大量のデータでは…ACCESSのクエリーを使いたいと思っております。 ODBC接続の設定が読み取り専用になっているのか そうであれば その設定はどこにあるのか 教えてもらえないでしょうか? 宜しくお願いいたします

  • Access :ALTER TABLE で作成した文字列フィールドがトリミングされない

    いつもお世話になっております。 Access2000を使用しております。 Accessで作成した、あるシステムのバージョンアップを行っております。 その際、複数のテーブルにフィールドを追加する移行プログラムを作成しております。 Dim DB As DAO.Database Set DB = OpenDatabase("外部DB.MDB") DB.Execute ("ALTER TABLE 既存テーブル ADD 追加フィールド CHAR(255)") DB.Close 'データベースを閉じる Set DB = Nothing 上記のようなプログラムを走らせたのですが、 作成された追加フィールドにデータを入力すると、 入力した値の後に指定サイズ分の空白文字ができてしまいます。 つまり、10文字入力した場合 255-10=245文字が空白として登録されてしまいます。 Unicode圧縮プロパティのせいかな、と思い、 Dim TBL As DAO.TableDef Dim FLD As DAO.Field Dim prUC As DAO.Property Set TBL = DB.TableDefs("既存テーブル") Set FLD = TBL.Fields("追加フィールド") Set prUC = FLD.Properties("UnicodeCompression") prUC.Value = True と、フィールド追加後にプロパティを変更してみたりもしたのですが、 やはり、空白が出てしまいます。 作成したフィールドの空白文字がセットされないようにするにはどのようなことを行えばよいのでしょうか。 ご教授のほど、宜しくお願い致します。

  • Accessでフォームへのフィールドの追加方法について

    よろしくお願いします Access2002にて名簿を作成しております。 テーブル「A」とテーブル「B」という2つのテーブルを作成し ウィザートを利用してAとBの混ざったフォーム「名簿」を作成しました。 その後テーブル「A」のフィールド「年齢」を増やしたのですが フォーム「名簿」へ「年齢」フィールドの追加の仕方がわかりません フォーム「名簿」のフィールドリストに「年齢」はありませんので、 まず「フィールドリスト」へ「年齢」フィールドを追加する必要が あると思うのですが、その方法を教えて下さい。 よろしくお願いします

専門家に質問してみよう