• ベストアンサー

ACCESS、フォームの入力方法。

仕事上、どうしてもACCESSを使わなくてはならなくなり、初めてACCESSに挑戦しています。 「フォーム」テキストボックスの簡単な入力方法を教えてください。 ExcelのCSVデータを、ACCESSに読み込みました。 「フォーム」を作成し、データを管理しています。 フォームのテキストボックスに、同じ記述を入れる項目があります。 データが1000以上あるので、かなりの手間になってます。 そこで、1度に(一括で?)その項目を入力できるような機能はないのか?と思い、質問しました。 この記述というのが、HTMLデータで改行が入っているため、Excelでは、入れることができませんでした。

質問者が選んだベストアンサー

  • ベストアンサー
  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.7

>反映させたいのがHTMLタグで・・ 補足に書かれている記述を反映したいのであれば簡単な方法として別にテーブル1つとフォーム1つを作ってください。 テーブルにはメモ型のフィールドを1つフォームもそのフィールドをデータソースとして作ってください。 フォームのフィールドは記述が全て見えるくらいの大きさで良いと思います。(テーブル側ではメモ型でも1行づつしか見えませんので) そのフォームをForm1フィールドをText1とします。 フォームを開きText1に記述を入力してください。 改行はCtrlキー+Enterキーで改行できます。 先に作ったクエリのレコードの更新に Forms!Form1!Text1 と指定します。 フォームForm1が開いている状態でクエリを起動させれば更新するテーブルのフィールドに反映されます。 (更新するテーブルのフィールドもメモ型のこと) Form1のText1に表示されている(入力した)記述がそのまま反映されます。 これで行けます。

その他の回答 (6)

noname#223623
noname#223623
回答No.6

更新クエリ自体の使い方はわかったと思っていいですね。 注意すべき点はフィールドのデータ型、引用符の使い方、改行文字の使い方です。 1. フィールドのデータ型 改行を含む場合はフィールドをメモ型にしてください。#2さんのいうとおりですね。 2. 引用符の使い方 ダブルクォーテーションの中はシングルクォーテーションにしてください。 × "<TABLE border="0" width="736">" ◯ "<TABLE border='0' width='736'>" 3. 改行文字の使い方 改行したいところに改行文字を入れます。 "<CENTER>" & chr(13) & chr(10) & "<TABLE border='0' width='736'> chr(13)とかchr(10)が改行を指定する文字です。実は改行の指定がこれでよかったか忘れてしまったんですが。いけるんじゃないかと。だめだったらまた。 一度に更新するとエラーがわかりにくくなるので次のように作業した方がいいでしょうね。文字数制限があるような気もするので。 "<TABLE border='0' width='736'>"で更新できるか確認。 -> "<CENTER>" & chr(13) & chr(10) & "<TABLE border='0' width='736'>で更新できるか(改行しているか)確認 -> 徐々に行数を増やして確認 余談ですが、全てのレコードで共通ならわざわざテーブルに入れる必要もないと思うんですけどね。質問の内容と変わってしまうので更新する方向で書きましたが。

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.5

#1です。発想を変えて、別アプローチを考えてみたいと思います。 【1.】 データはEXCELでつくる #1の補足では「改行の問題をクリアできればEXCELでもOK」と読み取れます。EXCELでは[Alt]+[Enter]でセル内で改行することができます。作業の効率を考えれば、使い慣れたEXCELでデータ作成、、と言うのは間違いではありません。こと、入力に関してはEXCELの方が強力な編集機能(オートフィルとか)がありますので。 また、EXCCELはセル内改行を含むデータであっても、ちゃんとCSVファイルを書き出すことができます。特別な設定は不要です。普通にCSV形式で保存すればOKです。 -->これはEXCELがCSVに書き出すときにフィールド(セルごとの区切り)にテキスト区切り文字を入れる処理を自動で行っているためです。 【2.】 ACCESSへインポート ただし、このCSVをACCESSにインポートするときには、このテキスト区切り文字を正しく設定しなければなりません。 <その手順> …テキストインポートウィザード………………………………………………………………………… 2-1. [区切り記号付]-[次へ]クリック 2-2. フィールド区切り文字-[カンマ] / テキスト区切り文字 "(ダブルクォーテーション) 2-3. [新規テーブル] 2-4. セル内改行のある列は、[データ型]を[メモ型]にします …………………………………………………………………………………………………………… これで、正しくインポートできます。 【3.】 改行コードを変換し、インポートし直す さて、インポートされたデータを見てみると 123・ABC のように、セル内改行の改行部分が「・」(中黒といいます)になってしまい、改行されて表示されません。なぜか?改行コードが異なるからです。 ACCESSの改行コード : CRLF / EXCELが書き出すセル内改行を含むCSVの改行コード: LF 通常 EXCEL が書き出す CSV の改行コードは CRLF。しかし、セル内改行を含むデータを EXCEL が CSV に書き出すと、改行コードは LF なのです。これが、ACCESS で改行されない理由です。したがって、書き出された CSVの改行コードを本来の ACCESS の改行コードである CRLF に予め変換してから CSV をインポートすれば、ちゃんと改行されて表示されるようになります。 <その方法> VECTORあたりから、改行コードを変換するフリーソフトを探してきましょう。そして、【1.】で作成したCSVファイルの改行コードをCRLFに変換し、【2.】の方法で、ACCESSにインポートし直します。 以上で、ご希望のデータがACCESSに移行できると思います。また、 >""で囲んである箇所が何カ所もあるせいなのか? この方法ならば、""で囲んである箇所が何カ所あっても関係ありません。 更新クエリでグリグリやる方法もあります。しかし、ACCESSに不慣れなのであれば、使い慣れたEXCELで一気にデータをつくりACCESSに流し込むスタイルは一見スマートではありませんが、ご希望のことを素早く実現できます。 ご参考までに。

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.4

>レコードの更新に更新したい内容を記述しクエリを実行する クエリで更新したい(テーブルに反映したい)フィールドのみ列に作りそのフィールドのレコードの更新に文字を入れたい場合は"あああ"のように""で囲めばテーブルのフィールドにあああと反映されます。 数値の場合はそのまま入力でOKです。 演算式が必要なら通常のVBで使われている記述を入れればテーブルに演算の答えが反映されます。 作ったクエリをビューで見るとレコードの更新がかかるフィールドのみ表示されます。(反映される前の状態で表示されます) 作ったクエリを保存しダブルクリックすればテーブルのレコードの更新をするフィールドに更新する内容が反映されます。 更新クエリをかけると元に戻らないので気をつけてください。試す場合はテーブルのコピーでも取っておいた方が良いと思います。念のため。

an-an129
質問者

補足

回答ありがとうございます。 >クエリで更新したい(テーブルに反映したい)フィールドのみ列に作りそのフィールドのレコードの更新に文字を入れたい場合は"あああ"のように""で囲めばテーブルのフィールドにあああと反映されます。 この方法では、できませんでした。 ただO_cyanさんから教えて頂いたとおり、"あああ"と入れ、反映することはできました! 今回、私が反映させたいのがHTMLタグで、下記のような感じです。 -----------------ここから----------------------------------------- <CENTER> <TABLE border="0" width="736"> <TBODY> <TR> <TD colspan="2" width="714" height="56" valign="top"> ・ ・(途中、省略) ・ </TD> </TR> </TBODY> </TABLE> </CENTER> -----------------ここまで----------------------------------------- ""で囲んである箇所が何カ所もあり、 これを更新クエリで実行(?)させようとすると、 『指定した文の構成が不正です』とエラーメッセージがでてしまいました。 ""で囲んである箇所が何カ所もあるせいなのか? テキストが長い文だからか?わかりませんが、 エラーメッセージが出て、更新クエリを設定することができませんでした。 お時間があれば、また教えてください。

noname#223623
noname#223623
回答No.3

> HTMLデータで改行が... が、何をしたいのかいまひとつよくわかりませんが。「フィールドの値を一括で更新する」ということで書きます。 以下のページを読んでください。 http://www.geocities.jp/access119room/y_soft/point_k/kousin1.htm 更新クエリの例で「1 数値型フィールド町村番号の一括更新」という説明があります。今回求められていることは「画像1」から「画像7」までの作業だと思います。もちろん、テーブル名やフィールド名は適当に読みかえてください。 注意ですが、この例では数値型のフィールドを更新します。文字列のフィールドの場合は新しい値をダブルクォーテーションで囲みましょう。「画像6」の「レコードの更新」で入力する値です。 作業前にはテーブルをコピーしておいた方がいいですね。失敗したら戻せないかもしれない。 とりあえず解決する方法として紹介致しました。わからないところがあったらまた聞いてください。 Accessを使うなら今のうちに基本をちゃんと勉強しないとあとで困ります。ということで解決したら以下のページも読んでおきましょう。 http://www.mahoutsukaino.com/index.htm

an-an129
質問者

お礼

回答ありがとうございます。 わかりやすい画像付きのサイトをご紹介いただきまして、ありがとうございました。 今回、ACCESSについて、自分でも色々検索してみたんですが、なかなかわかりやすいサイトに出会えませんでした。 ぜひぜひ参考にさせていただきます。 また、ご指摘のとおり、『基本』から勉強させていただきます。

an-an129
質問者

補足

すみません。。 教えて頂いた方法をやってみたのですが、できませんでした。 私が反映させたいのがHTMLタグで、下記のような感じです。 -----------------ここから----------------------------------------- <CENTER> <TABLE border="0" width="736"> <TBODY> <TR> <TD colspan="2" width="714" height="56" valign="top"> ・ ・(途中、省略) ・ </TD> </TR> </TBODY> </TABLE> </CENTER> -----------------ここまで----------------------------------------- 『指定した文の構成が不正です』とエラーメッセージが出てしまいました。

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.2

初めてAccessを使うならクエリのウィザードで作れば簡単にクエリを作れませす。 更新クエリを使えば一括でそのフィールドへ更新をかけられます。 クエリウィザードで選択クエリを作り更新したいフィールドだけにします。 そのフィールドのレコードの更新に更新したい内容を記述しクエリを実行するればテーブルに更新します。 抽出条件を付けなければテーブルの全レコードに更新されます。 改行があるならそのフィールドのデータ型はメモ型の方が良さそうですが内容が良く分かりませんので取り合えず更新クエリで一括でデータの更新ができるということで。

an-an129
質問者

お礼

回答ありがとうございます。 更新クエリというものを試してみました。 途中、わからない部分があるので、再度質問になってしまいますが、お返事を頂ければ幸いです。 >そのフィールドのレコードの更新に更新したい内容を記述しクエリを実行するればテーブルに更新します。 この部分の詳しいやり方を教えてください。 色々触ってみてはいるのですが、わかりません。。

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.1

何をしたいのか、いまいち理解できません。 >そこで、1度に(一括で?)その項目を入力できるような機能はないのか? これは、テーブルのレコードに対しUpdateのクエリを発行することで可能です。テーブル名やフィールド名、および一括入力したい内容を具体的に補足して下さい。 >HTMLデータで改行が入っているため、Excelでは、入れることができませんでした。 HTMLソースのことですか?EXCELでは[Alt]+[Enter]でセル内で改行できますので、入力できないこともないでしょう。何が問題になってできなかったのでしょう? 推測なのですが、セル内改行で入力すればCSVに書き出しても、問題がでないのではないでしょうか。

an-an129
質問者

補足

回答ありがとうございます。 説明が下手で、申し訳ないです。。 ACCESSで使われる用語(?)が、いまいちよくわかっていないもので・・・。 テーブルの「レコード」というのが、わかりませんが。 追加したい項目は、Excelで言えば、Aの列すべてに、同じ記述を入れたいんです。 ・・・すみません。こんな説明の仕方しかできなくて。 クエリについて、もう少し詳しく教えていただければ幸いです。 ちなみに、Excelのセル内に、改行が入っているものをCSVに変換したときには、改行を1つのセルと読み込んでしまうため、きちんとしたデータができないようです。 (それが原因で、ACCESSを使わなければいけない状況になりました。)

関連するQ&A

  • アクセスのフォームで簡単入力の仕方

    いつもお世話になっております。当方アクセス初心者です。フォームにテキストボックスを2個配置しました。1個にコードを打ち込むと別のテキストボックスにそれに該当する項目を表示させたいのですがどうすればいいのでしょうか?入力したデータを保存するテーブルが1つ、コードと項目を保持するテーブルが1つ、それぞれ用意しています。よろしくご教示願います。

  • Access97でフォームの数字入力時マイナス値を認めない方法

    Access97で、フォームのレコードソースに Access内テーブルを割り当てています。 フォームのテキストボックスのコントロールソースには そのテーブルの数値項目の値を割り当てているのですが、 このテキストボックスにマイナス数値の入力を 認めない場合、更新後イベントにエラーチェックの コードを記述する以外に、簡単にエラーチェック出来る ような方法はないでしょうか。 よろしくお願い致します。

  • Access2003 フォームでの入力制限

    AccessでVBAを使用している途中わからないところが でてきましたのでお教え頂ければと思います。 WindowsXPでAccess2003を使用しております。 さっそくですが、まずデータ入力用のフォームがあります。 数量を入力するテキストボックスがあり、そこに入力された値が 0以上100未満ではない場合エラーを表示するようなVBAを使用しています。 このエラーチェックをVBAで直接値を指定するのではなく テーブルにあるマスターを参照して判断することは可能でしょうか。 少々わかりにくいですかね…; 項目 下限 上限 ------------------- 数量   0    100 金額  500  5000 上記マスタがあります。 フォームにて数量のテキストボックスに値を入力し、とあるボタンを クリックした際にこのマスタを見に行き、0未満あるいは100以上の 場合はエラーを表示させたいのです。 こういう場合はADO?という記述を使用しなければならないのでしょうか… よろしければお教えください。

  • ACCESS フォームの入力で

    フォームの入力でコード番号を入力すると項目が自動入力出来るようにしたくて 2つ目のテキストボックスのコントロールソースに=DLookUp("[商品名]","テーブル2","[商品コード] = [コード] ")と入力したのですが 1つ目のテキストボックスに入力すると そのときは2つ目のテキストボックスは白紙で 一度フォームを閉じてから立ち上げると2つ目のテキストボックスにも入力されています。 これは閉じないと入力されないのでしょうか? 1つ目を入力した後に表示されるようにしたいのですが・・・。 よろしくお願いします。

  • Access2010フォーム関数からテーブル入力

    アクセス2010について過去からの質問があまりないようですので 浅学ながら質問させていただきます。 フォームのテキストボックス内にて DlookUp関数で返した値を、 "Aテーブル"へ自動で入力したいのですが、 そのような関数はあるのでしょうか? また、このような操作は Dlookupを記述しているコントロールソースから 改行でコードを入力すればよいのでしょうか? ご教示いただければ幸甚です。 よろしくお願いいたします。

  • Excelでフォームを使って入力方法をおしえてほし

    データ量が有り今後もデータ増え また、限られた時間内に入力が必要な為、 フォームを使い入力をしたいと思っています。 Excelのクイックアクセスフォーム機能を使って 入力してみました1行ごとに入力フォームが消えるので 使い勝手が悪いです。 試合中の入力をしたいので 開いたフォームで連続入力を可能にする方法を教えてください。 よろしくお願いします。 ※因みにVBAフォームのテキストボックスを使わないと 出来ないのなら参考になる方法も教えてもらいたいです。

  • Accessフォームのテキストボックス内改行無効の方法

    Accessフォームのテキストボックス内改行無効の方法 お世話になっております。 Access 2002 ですが、フォーム上に配置したテキストボックスは、 「Ctrl+Enter」で改行できますが、 これを無効にしたい、つまり、テキストボックス内で改行させたくない場合は どうしたらよろしいのでしょうか? よろしくお願いいたします。

  • ACCESS「CSV」形式での、保存方法。

    ACCESSで作ったデータを「CSV形式(カンマ区切り)」で保存する方法がわかりません。 今日ACCESSに初挑戦しています。(ACCESS2000を使用) 色々調べて、データを「エクスポート」すればいいというところまでは、わかりました。 テキストデータにエクスポートしたのですが、 CSV(カンマ区切り)に変更する方法がわかりません。 よろしくお願いします。 -------------------------------------------------------- 強硬手段で、拡張子を「.csv」に変更してみたのですが、 だめでした。 データ内に、改行のあるHTMLが入っています。 拡張子を強制的に変更したら、 このHTMLタグが、消えてしまいました。 --------------------------------------------------------

  • ACCESS フォームで入力データを残したいです。

    いつもお世話になっております。 今回はACCESSについてご指導お願い致します。 テーブルからフォームを作成したのですが、テキストボックスで1件目の入力データの内容を2件目入力するときに、そのまま残しておきたいのです。 テキストボックスには日付や品番など入力していくのですが、同じ場合は入力を省きたいと思っています。難しいでしょうか・・? 最近ACCESSの勉強をはじめたところなので、用語などもほとんどわかりません。 宜しくお願い致します。

  • ACCESS2000の帳票フォームでテキストボックスの入力値を取得したい

    こんにちは。ACCESS2000でツールを作成しています。 テーブルはExcelにリンクさせ、クエリを介して帳票フォームで データを表示しています。 帳票フォームのレコード毎にテキストボックスを追加して それぞれ入力できるようにし、その値をVBAで取得したいのですが どうすればよいでしょうか。 テキストボックスを追加して実行すると、一つのテキストボックスに 入力した値が全てのレコードに反映されているようです。 帳票フォームのしくみがよく分かりません。 どなたか教えていただけないでしょうか。 宜しくお願いします。

専門家に質問してみよう