• ベストアンサー

Windows7 VB6での SQL構文について 

こんにちは! 最近、普段使っている Win Vista(32Bit) が壊れて修理中です。 とりあえずデータや自作のプログラムは退避しました。 その中にVB6で作った家賃管理のプログラムがあります。 最近、息子が買ったノートPC(Win7 64Bit)でプログラムを実行しようと色々調べてVB6のインストールが完了しました。 とりあえず、動きましたがデータベース(MDB)で数値をキーにしては問題はありません。 ところが、キーは文字列の時は読込ません。 命令は下記の通りです。よろしくお願い致します。 SELECT * FROM 部屋M WHERE 部屋番号='A101'

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

  • ベストアンサー
  • ShowMeHow
  • ベストアンサー率28% (1424/5027)
回答No.1

mdbを作成したときのアクセスのバージョンは? 現在入っているアクセス(かランタイム)のバージョンは? その辺りに問題がないなら、 アクセスが入っているなら、 SELECT * FROM 部屋M WHERE 部屋番号='A101' がクエリで実行できるか、 対象データがあるのか、 などを確認してみるべきだと思います。

fuku478
質問者

お礼

ありがとうございます。 バージョンは3.0です。 クエリは今、息子のPCが無いので後で実行してみます。

fuku478
質問者

補足

解決しました。 初歩的な事を忘れていました。 MDBの修復を行えばできるようになりました。 いろいろ、ヒントになり助かりました。 ありがとうございます。

関連するQ&A

  • VBからのsqlの呼び出し方

    VB6.0について質問です。。。 現在SQLを使用して二つのAccessファイルからデータを取得して CSV出力を行っているのですがかなり無駄な処理をしていそうなので もっと簡略化もしくは効率的に出来る方法はないですか? 取得する項目数が多いので以下のソースを何回も交互におこなっています>< ふたつの異なるデータベースをSQLで呼び出すのに毎回切断して接続の長々としたプログラムで見栄えもわるいです、、、 お知恵をおかしください。 dbs.Close Set MyWorkspace = Workspaces(0) 'iniファイルからmdbのパスを取得 Set dbs = MyWorkspace.OpenDatabase(PATH1) '指定のmdbファイルを開く Set ds = dbs.OpenRecordset("select XXX from abc where No = " & XXX & " ;") 'レコードカウントする tmp2 = tmp2 & ds.Fields(0).Value & "," dbs.Close Set MyWorkspace = Workspaces(0) Set dbs = MyWorkspace.OpenDatabase(PATH2) Set ds = dbs.OpenRecordset("select XXX from efg where No = " & XXX & " ;") tmp2 = tmp2 & ds.Fields(0).Value & "," ・ ・ ・

  • SQLについて

    初心者です。 データベースの操作をしているのですが、 テーブル内からある言葉が含まれる行を全て取り出すようにしたいです。 たとえば「話す」という言葉で検索して、「話すこと」「話すには」「話す術」などが結果として表れるようにしたいです。 Select A from B where 条件 where の後にぴったりの命令はあるのでしょうか。 (vb.net)からの操作です。 どなたか教えてください

  • VBでSQL

    SQLでテーブル1に該当レコードがなければインサート あればアップデートをする処理をしたいのです IF ??? THEN UPDATE テーブル1 SET SELECT * FROM テーブル2 WHERE 条件 ELSE INSERT INTO テーブル1(SELECT * FROM テーブル2) END IF ???はプライマリキーで判定をしようと考えています こんな感じでやろうとしたところ うまくいきませんでした VB上で実行しよううとしているからなのでしょうか? ADOでSQLサーバに接続しています 条件分岐もどういう条件(VBでの書き方)がわからないです。 よろしくお願いします。

  • sqlについて

    SQLについて質問です。 VBからMDBにSQLでデータの参照をしたいのですが ("select * from abc where No = " & No & " ;") テーブル内の数ある項目の中で一つだけまたは複数除いて参照する場合のSQL文を教えてください。 項目が60個ほどありますので一つ一つ指定していくとすごく長いSQLになってしまいそうですのでお知恵をお貸しください><

  • VBでSQL-serverをプログラムする

    VBでmdbファイルを操作するプログラムを勉強していますが、データベースをサーバー管理するならば、AccessではなくSQL-serverなどを使った方が良いと聞きました。 質問なんですが、 SQL-serverには、Accessと同じようにユーザーフォームを使ってデータベースシステムを構築するような機能が付いているのでしょうか? そもそもOracle、dBase、SQL-serverといったデータベースソフトは、DBそのものを作成するソフトであって、DBシステムを構築するにはVBなどによるプログラム開発が必要なのでしょうか? 分かりにくい質問ですみません。

  • 【SQL文】 where (colA & colB) in ((1 & 1), (2 & 2)) とは?

    VB6のプログラムを読んでいたら、ACCESSのMDBにSQL文を 投げる際に以下のような記述がありました。 ------------------------------------------------------ select * from tableA where (colA & colB) in ((1 & 1), (2 & 2)) ------------------------------------------------------ これはどういったことを表しているのでしょうか? 雰囲気的には (colA, colB) の組み合わせが (1, 1) か (2, 2) というようなことを表しているのかなと思うのですが はっきりとわからなかったため質問させていただきました。 また、これはOracle等の他のDBでも使用できる構文 なのでしょうか? ご存知の方がいらっしゃいましたら教えていただけたらと 思います。

  • SQL文のwhere条件文で使う <> の意味はなんですか

       SELECT * FROM user WHERE date <> 1 SELECT * FROM user WHERE key <> "" ↑の date <> 1 とか key <> "" の <> はどういう意味でしょうか?   

  • sqlのwhereで指定した条件の前後を取得したい

    テーブル=T) KEY DATA 001 あ 002 い 003 う 004 え 005 お SQL) SELECT DATA FROM T WHERE KEY = 003 ; 上記のSQLでは、「う」のデータしか取得できませんが、 「003」の前後1件、合計3件の「い」「う」「え」を取得する方法を教えて下さい。 ちなみに、 SELECT DATA FROM T WHERE KEY >= 003 AND ROWNUM <= 2 と SELECT * FROM ( SELECT DATA FROM T WHERE KEY < 003 ORDER BY KEY DESC ) WHERE ROWNUM < 1 のUNIONでは上手く行きませんでした。 よろしくお願いします。

  • SQLでエラーです。

    VB初心者質問です。 開発環境 VB6 SP6 WIN2000  VB6からADOを使いMDBのテーブルにSQLで検索しようとしましたがエラーになります。 (状態) mySQL = SELECT * FROM ABC WHERE ABC.あああ-いいい = 123 Set Rec = Cnn.Execute(mySQL) (エラーメッセージ) 実行時エラー'2147217904(80040e10)' 1つ以上の必要なパラメータの値が設定されていません。 同様の処理を別テーブルで行っていますがエラーになりません。 気になる点は項目名称(あああ-いいい)にハイフンが 入っていると思い、ダブルコーテーションで ”あああ-いいい”でくくってみましたが、 これだとエラーになりませんが文字列で判定されて いるようです。結果抽出されません。 どなたかアドバイスお願いいたします。  

  • SQLについて

    SQLについて質問です。 現在vbからmdbファイルにある日付間のデータを取得するようなsqlをなげているのですがうまくいかないのでお知恵をお貸しください、、、 sql文は ("select * from ABC where date between ""'" & hiniti & "'"" and ""'" & hiniti2 & "'"" ;") hinitiには日付(2006/4/5)hiniti2には(2006/7/4)のように日付が入ったとするとデータは2006/4/5以降から2006/7/4までしか取得してこないのです。 BETWEEN 演算子は境界値も含むらしいので2006/4/5のデータが取れない理由がわかりません。 日付が文字列というのが問題あるのでしょうか?