• ベストアンサー

SQLの追加でオラクルとアクセスの区別

Access97を使用しています。   元のデータベースが オラクルとアクセスの区別について  モジュールでSQLを使って複数の項目を追加する場合  キーとなる項目にはデータがあるのですが  他の項目の中で空白の場合もあります。  その時 テキストボックスにデータが入っていない場合 オラクルであれば、空白の項目があっても データ自体は追加されるのですが アクセスであれば、1つでも空白があれば 追加されません。 仮に空白であれば、" "ブランクを入れて 処理するようにしています。 モジュールは同じ形式ですが オラクルとアクセスで上記のような違いはあるのでしょうか?

  • cdma
  • お礼率36% (91/247)

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

  • ベストアンサー
  • MovingWalk
  • ベストアンサー率43% (2233/5098)
回答No.2

>アクセスであれば、1つでも空白があれば 追加されません テーブルを開いてレコードを追加する時も同様ですか? フィールド属性が、必須入力とか空白を許可しない様になっていませんか? 「値要求」「空文字の許可」あたりをチェックしてみてください。

cdma
質問者

お礼

上手くいきました ありがとうございました。

その他の回答 (1)

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.1

>オラクルであれば、空白の項目があっても >データ自体は追加されるのですが > >アクセスであれば、1つでも空白があれば >追加されません。 Accessでは、レコードの追加に失敗するんですか? レコードは追加できてもフィールドの値が空になるんですか? 単純に、AccessとOracleのテーブルの定義の違いだけに思えるんですが。

関連するQ&A

  • オラクルからAccessにデータ追加

    オラクルから、必要なデータを抜出し加工の為のDBをAccessで作成していますが、オラクルから抜き出したデータ(レコードセット)を、どうやってAccessのテーブルに書き込めばよいかがわかりません。 ◎環境 Oracle:10g Access:2010 ◎現在の状況 Dim CON As New ADODB.Connection Dim RS As ADODB.Recordset Dim SQL As String Dim i As Integer 'DB接続定義 CON.Open "DSN=DNS名;UID=ユーザー名;PWD=パスワード;" 'SQL文 SQL = "SELECT " SQL = SQL & "カラム1," SQL = SQL & "カラム2," SQL = SQL & "カラム3" SQL = SQL & "FROM オラクルテーブル名 " SQL = SQL & "WHERE 抽出条件 " SQL = SQL & "AND 抽出条件" SQL = SQL & "GROUP BY カラム" SET RS = CON.EXCUTE(SQL) For i = 1 To 10 Debug.Print rs(カラム1) & rs(カラム2) next i ここまでは、オラクルのテーブルから、レコードセットにデータが取り込まれてます。 rs.close: SET RS = Nothing con.close:SET CON=Nothing end sub 案1 レコードセットのデータを、Access側のテーブルにループで回して、1行ずつデータ追加 案2 INTO句で直接、テーブル作成 調べていて、2通りのやり方があると思うのですが、どちらにしても、テーブルへの書き込み方がわかりません。 案1の場合、Access側のテーブルを開いてデータ追加する方法 ※同時に2つのテーブルを開くことになるのでは? 案2の場合、SQL文はオラクルで処理する為の物なので、AccessテーブルのINTO句が使えるのか? オラクルのテーブルをリンクする事も考えたのですが、実際動かすPCにはAccessRuntimeしかインストールしてませんので、オラクルのテーブルをリンクしてくれませんでした。 よい方法があれば、アドバイスを頂けたら幸いです。

  • ORACLEでのSQLについて

    SQLについて教えてください。 今、VBからORACLEデータベースにSQLを投げる処理を作っているのですが、 一つわからないことがあります。 例えば、アクセスでは、クエリで新しいテーブルを作成するという考え方がありますが データベースがORACLEでも同じようなことができるのでしょうか? 別に新しいテーブルを作成することに執着するわけではなく、テーブルのデータを削除 してから、そのテーブルにSQLにて引っ張ってきたデータを入れる という ものでもいいと考えています。そのやり方でもかまいませんので教えてください。 宜しくお願いします。 Oracle8.1.6 vb6

  • アクセスのデータベースにほかのデータを追加する方法

    データの入っていない空白の部分があるアクセスのデータベースがあるんですが、そこにほかのエクセルのデータを簡単に追加する方法はないでしょうか。データがかなり多く手作業やコピペではきついので方法を考えています。(挿入する項目は毎回同じ、エクセルをimportして新しいのを作るのではなくてあくまで既存のデータベースに追記)

  • オラクルのSQLについて

    オラクルのSQLについて質問です。 開発環境はVB6.0です。 引継ぎをまかされたのですがオラクルは操作したことがないので困っています。 Set Ora = dbOra.CreateSql("begin EMPCRMI(:KA, :ROOM, :YMD, DATA1, :DATA2, :DATA3, :DATA4, :RET) ; end;", 0&) のEMPCRMIの部分が何なのかがわかりません>< 検索をかけてもVB構文ないで検索をかけてもヒットしません。 DATAの拡張を行うためにDATA5.DATA6と増やして実行したらエラーが起きました。 データベースのテーブルでは拡張領域は確保してあるので何が原因なのかわからないでいます、、、 お知恵をお貸しください。

  • アクセス2000でデータの追加がうまくいかないんですけど

    アクセス2000を使ってます。 基礎データというテーブルを作って、そこに「テキスト」というメモ型のフィールドを作り、 参照追加フォームというフォームを作って、その中に二つのテキストボックスを配置し、一方のテキストボックス1には「基礎データ」の「テキスト」をコントロールソースとして設定し、他方のテキストボックス2は非連結にし、コマンドボタンを二つ配置して、一方のコマンドボタン1を押すと、テキストボックス1のデータがテキストボックス2のデータにコピーされるようにVBAコードを書き、さらに、もうひとつのコマンドボタン2を押すと、非連結のテキストボックスのデータを、基礎データテーブルの「テキスト」というフィールドに追加する追加クエリを動かすようにしました。  このような状況で、コマンドボタン2を押すと、非連結のテキストボックス2のデータが、全角126文字までなら正常に動作するのですが、それ以上(全角127文字以上)になると、「引数が無効です。」というエラーが出てしまいます。 基礎データテーブルの「テキスト」はメモ型に設定してあるのに、どうしてこのようなエラーが出てしまうのでしょうか?誰か教えてください。  ※ためしに、追加クエリ単独で動かして、全角127文字以上のデータを入れた場合には、追加クエリは正常に動作します。これって、フォーム側の問題なんですか?  

  • AccessのデータをOracleに移行したい

    AccessのデータをExcel(csv)にエクスポートして、それをSQL Loderでオラクルに移せると聞いたのですが、 具体的にはどんな感じで行うのでしょうか? Access2000 Oracle9i RedHatLinux7.2 です。 よろしくお願いします。

  • ACCESSのフォームについて

    いつもお世話になっております。 Accessですでにあるデータベースに新しいマスタを追加し、テーブルに挿入しました。リレーションシップで連結しました。  フォームに新しくそのデータを表示するテキストボックスを作ったのですが、プロパティのコントロールソースに新しいマスタの項目がなく、新しいマスタのデータを表示できません。 新しいマスタを後から追加した場合、もう一度フォームウィザードで作り直す方法しかないのでしょうか? 普通は設計段階でこのようなことがないようにすると思いますが、なにぶん、データベースに関しては初心者なのでこのようなことになってしまいました。 どうぞよろしくお願いします。

  • oracleのSQLパフォーマンスについて

    oracleのSQLパフォーマンスについて質問です。 当方、SQLは初めてで、ずぶの素人ですが、SQLパフォーマンスを改善することになりました。 質問の仕方も悪いとは思いますが、お力添えをいただきたいと思います。 【質問1】 DBのレコード件数は、SQLパフォーマンスにどう影響するでしょうか?以下例のようなことが知りたいです。 例1 INDEXのないテーブルに対しSQLを発行する場合、レコード件数の多いDBとレコード件数の少ないDBでは、レコード件数が少ない方が、パフォーマンスが良い? (前提として、検索対象DBは、レコード件数以外に差がないとする) 例2 WHERE句にINDEX項目を使用した場合、DBのレコード件数はパフォーマンスに影響しない (前提として、アクセスパスは適切で、検索対象をうまく絞り込むことができる) 例3 WHERE句にINDEX項目を使用したSQLをレコード件数の多いDBに発行する場合と、WHERE句にINDEX項目がないSQLをレコード件数の少ないDBに発行する場合では、どちらがパフォーマンスがよいのか (前提として検索対象DBは、レコード件数以外に差がないとする) 【質問2】 INDEXをDBに追加すると、INSERT、UPDATE、DELETEの際に、どのくらい影響するのでしょうか? 対象のDBは、5項目あり、400万件くらいのレコードがあります。また、複合項目(2項目)のプライマリキーと、単一INDEXがついており、新たに3項目の複合INDEXを追加しようとしています。 以上、よろしくお願いいたします。

  • ACCESS97 のモジュールの中 何番目かの データを取得したい

    ACCESS97 のモジュールの中で SQLを使用しています。 SQLを使用して あるテーブルの任意のレコードを選択したいのです。 例えば テーブルAが下記のようにあるとします。 項目 名前 番号 A 001 B 003 D 004 という場合に名前Bの番号003を取得したいのです。 データとしては、"2"番目の2 は取得可能です。  (フォーム上のテキストBOXで入力) Set DATABASE = CurrentDb() strSQL = "SELECT * FROM テーブルA WHERE " strSQL = strSQL + "**** = '" & **** & "' ;"     ↑ここに条件をどのように持てばいいのでしょうか? ※ ここで、名前の項目ではキーとなる項目は得られません。   今回は 何番目のデータを取得したい ということが可能かどうか    教えて頂きたいと思います。

  • AccessとSQL Serverの連携について

    現在Accessで組まれているデータベースがあるのですが、複数人で入力をする必要が出てきたため、SQL Serverへ移行したいと思っています。 ただ、まだデータベースの内容が完全にFIXしておらず、項目に変更や追加が発生する可能性があります。 そこで、 ●Accessを管理画面として使い、 ●Access上で内容を変更したら、システム全体もその通り変わる ような仕組みを作りたいのですが、可能でしょうか。 (完全にSQL Serverへ移行するのではなく、AccessとSQL Serverを連携させる?) よき方法がありましたら教えて頂けましたら幸いです。 ちなみにコストはあまり大きくはかけられません・・。 どうぞよろしくお願いします。 (※私はシステムはど素人なので、なるべく簡単に教えて頂けたら嬉しいです。なお、説明がおかしなこともあるかと思いますがご容赦ください。)

専門家に質問してみよう