• ベストアンサー

VBとOracleサーバーの接続処理で問題が・・・

こんにちわ、jixyoji-と申しますm(._.)m。 VBをやっていてOracleサーバーとの連動処理で困ってることがあります。 フォームデザインでは商品マスタデータの「商品ID」、「商品名」、「単価」の3つのデータをテキストボックスへ表示しそして「先頭へ」、「前へ」、「次へ」、「最終へ」というコマンドボタンと連動させてコードを作成してるのですが、そのフォーム内にもう1つLabelを作成し商品マスタデータ12件の内容の何件目を表示させるか、「1/12」を最初にして2件目なら「2/12」、3件目なら「3/12」として動かしたいのですがどうすれば宜しいでしょうか(+_+)? 宜しくお願いしますm(__)mペコ。

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

  • ベストアンサー
  • Haizy
  • ベストアンサー率40% (404/988)
回答No.2

こんにちは。 SQLのselect句に、count(*) を追加すれば、総件数が出ます。 あとは、プログラム内に、いまなんページ目かを保存するポインタ(整数値)を設け、ボタンをトリガーにして、カウントをおこなえばよいのではないでしょうか? それを、Label.caption なりに、表示してあげてください。 でわ

jixyoji
質問者

お礼

御礼が遅くなって申し訳ございません(゜゜;)\(--;)オイオイ。 やはりこちら側の質問の情報が足りないと要求どおりの「ズバリ、これだ!」と言うのがなかなか返ってこないような気がしました\(__ ) ハンセイ。最早プログラミングはど素人の領域でして・・・・恥ずかしながらイメージが未だに会得できていないんですよね・・・・(;_q))クスン。 どうやったらHaizyさんのように専門家になれるのか習得方法を肖りたいものです(/。\)。 本当に御礼が遅くなって申し訳なかったのと回答ありがとうございましたm(__)mペコ。

その他の回答 (3)

  • ykymtkt
  • ベストアンサー率51% (14/27)
回答No.4

レコード総数は Count(*) で、現在のレコード番号は ROWNUM で取得できます。 SELECT *,ROWNUM FROM TABLE1 という感じです。

jixyoji
質問者

お礼

お礼が遅くなってしまったのをお詫び申し上げますm(._.)m。 ROWNUMですか・・・・こ・・・これは習っていない方法だ・・・・( ̄□ ̄;)!!。しかし、おっしゃっている内容だけでは充分にまだこちらも理解できないし、それをどこでどのように使用すれば良いのかが・・・・わ・わからない(((・・ )( ・・)))。 教えていただいた内容をさらにつきつめて勉強していきます(^^ゞ。 遅くなって申し訳ありませんでした。もし質問がまたあった場合宜しく御願いしますm(_ _)m。

回答No.3

仕様がよくわからないので何とも答えがたいのですが、 簡単な例としては、 1.全件数を取得する。(⇒x) 2.主キーの昇順で先頭1件を取得し1/xとする。 3.以後「次へ」又は「前へ」を押す度に主キーをシフトして表示いく。 4.先頭、最後尾は主キーの最大値、最小値を使用して取得する。 以上、簡単にですがこんな感じでどうでしょう?

jixyoji
質問者

お礼

お礼が遅くなってしまったのをお詫び申し上げますm(._.)m。 はぅ~プログラミングは中々習得できなくて日々気持ちが落ち込んでいます(T△T)。その「仕様」も何を具体的に言っているのかがわからないんですよね~(×_×;)。色々これ以外にも違う言語でやるはめになっていて方々色んなHPを閲覧するものの四苦八苦している状況です。 これから質問内容をもっと正確に書いて、自分が何をしているのかを具体化できるようにまずしたいと思います(∋_∈)。 本当にどうもありがとうございましたm(__)mペコ。

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.1

オラクルとの接続方法を教えてください

jixyoji
質問者

お礼

御礼が遅くなって申し訳ありませんm(._.)m。 もう何がなにやらわけがわからない状況でして( ;^^)ヘ..。接続方法と言われましても・・・Servletなのかな;^_^A。よくわかりません┐('~`;)┌。とりあえず頑張ります。 どうもありがとうございました(-。-;。

関連するQ&A

  • ACCESSのマスターデータが削除されてしまう。

    現在、見積等を作成するためACCESSをWEBで勉強しながら作成している初心者です。 ・商品マスターに色・形状・サイズ・単価が入力済み ・明細テーブルを作成し、色・形状・サイズが入力可能 のように考えております。 ・明細クエリ: サイズ・色・形状(明細テーブル) 単価(商品マスター) を作成し明細クエリから生成したフォームから、色・形状・サイズを入力すると、単価が連動して出力(表示)できるような事を考えているのですが、うまく機能しません。 おそらく下記サイトの4番目に相当すると思い http://www.accessclub.jp/actips/tips_30.htm フォームのレコードセット:ダイナセット(矛盾を許す)にする事で解決いたしました。 そこまでは良かったのですが、入力された明細を削除すると、連動して関連した商品マスターのデータまで連鎖して削除されてしまい困っております。(当然かもしれませんが・・・) 明細削除時はマスターが削除されないような方法はありませんでしょうか。あるいは、他の方法でもかまいません。(明細フォームからはマスターから単価だけ参照する方法など)非常に困っております。何卒よろしくお願い致します。 環境:ACCESS2003 商品データ:現状7万です。

  • VB6で2つのFormを使ってプログラムについて

    環境:WindowsXp VB6(SP?) 操作:2つのフォーム(1と2)1からエクセルのデータを呼び込み⇒表示⇒さらにデーター追加⇒     コマンドボタンを押して2を表示⇒一部1のデータをラベルに表示してさらにデータ追加⇒     コマンド」ボタンを押して1と2のデータをエクセルの帳票に登録・保存     以上のことを繰り返す。     この間2フォームの登録・保存で2のフォームはアンロードする。 質問:1順目はうまくいくのですが、2順目になると、パブリック変数を使用して、テキストやラベルに表    示された、ものはうまくデーターが反映されるが、それ以外は、フォーム上では表示されていて     もdebug.printすると、データーが空欄になっているため、登録・保存できない。     例:'****Form1***** Public ex As String Form2.Show End Sub '******Form2******** Private Sub Form_Load() Label1 = Form1.ex End Sub このとき、2順目のForm1.exは””でもForm2のLabel1にはデーターが表示されている。             なにがいけないのかが、いろいろネットで調べてもよくわからないので、どなたか教えてくだ      さい。(initilizeとかをせっていすべきなのか?)      ただ、まだVB6をはじめて半年ほどですので、よろしくおねがいいたします。

  • VB2005のLABEL等のコントロールの表示速度がVB6時代よりかな

    VB2005のLABEL等のコントロールの表示速度がVB6時代よりかなり遅いように感じます。 実際遅いのですが、早くする方法はございますか? 例えば何もコードを書いていない新規フォームにLABELを80個ほど並べて実行しても LABELが右から左へぱらぱらと表示されますのでプログラムの影響ではないと思います。 表示は我慢するとして、タイマーで1秒周期でデータをファイルに書き込んでいるのですが表示が終わるまで タイマーイベントが待たされるようで、そのフォームの切り替えを何度か行うと1秒周期のデータ書き込みに に歯抜けがでる時がありこれが1番困っています。 改善策をご存知の方がいらっしゃいましたら宜しくお願いいたします。

  • SQLから商品マスタを呼ぶ際に「商品ID」に既に登録されてる内容はどう処理すれば?

    こんにちわ、jixyoji-と申しますm(._.)m。 VBをやっていてOracleサーバーとの連動処理で困ってることがあります。 既に登録されてる「商品ID」を「実行」ボタンクリック時にMsgBoxで「既に登録済み」と出すにはどうすれば? フォームデザインは追加、更新、削除、実行、取り消しのコマンドボタンと商品ID、商品名、単価の3項目をテキストボックスに表示し、テキストボックスはループ処理にしています。 また追加・更新ボタンはForm load時にintSr1、実行、取り消しはintSr2のフラッグにしています。 Option Explicit Private cn As New ADODB.Connection Private rs As New ADODB.Recordset Private i As Integer Private intSr As Integer Private cmd As New ADODB.Command ~~~~~~~ 続きはVol.2で・・・

  • VB2008を用いたDBの更新について

    始めまして。 VB2008とMySQL2008を用いて簡単な商品管理のプログラムを作成しようと しているのですが、VBを使って自分で作成したDBへ追加するといった処理が どうしても上手くいかない為、質問させていただきにきました。 /*****VB2008のプログラム*****/ '商品情報追加 Private Sub 追加btn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 追加btn.Click Dim r As FDA_DBDataSet.商品マスタRow Try r = Me.FDA_DBDataSet.商品マスタ.New商品マスタRow() r.Item(0) = 商品ID_text.Text r.Item(1) = 商品名_text.Text r.Item(2) = CInt(単価_text.Text) r.Item(3) = 型番_text.Text r.Item(4) = 仕入先CD_text.Text r.Item(5) = CInt(リードタイム_text.Text) r.Item(6) = 備考_text.Text Me.FDA_DBDataSet.商品マスタ.rows.Add(r) Me.商品マスタTableAdapter.Update(Me.FDA_DBDataSet.商品マスタ) Catch ex As Exception MsgBox("入力値エラーです。正確な値を入力してください。", 0, "エラー") End Try Me.商品マスタTableAdapter.商品IDソート(FDA_DBDataSet.商品マスタ) End Sub /*****ここまで*****/ 上記の処理はVBのフォーム上で追加というボタンを押したらFDA_DBという名前のDBの 商品マスタというテーブルにフォーム上で入力したデータを書き込むという処理をしようとしています。 追加ボタンを押したとき、プログラムが起動している最中はフォーム上のDataGridViewにはきちんと値が追加され表示もできているのですが、実際にDBの中身を確認してみるとDBへの追加処理が行われておらずプログラムを再起動させると当然ながら追加していたデータも消えてしまいます。 どうにかして実際のDBに反映させる方法はないでしょうか?

  • vb.netの問題で悩んでいます。

    vb.netで、このような問題が出て苦戦しています。 次のようなフォームを作成してください。 データAのテキストボックスには、文字列を、データBには回数を入れ、表示ボタンを押したときに文字列を回数分つないだものがメッセージボックスに表示される。(AにxyzでBに3ならばxyzxyzxyzと表示される) フォームは作成できました。肝心のプログラムが全然書けません。片方はstring 片方はintegerというくらいしか。。教えてください。

  • VB&ORACLEのパフォーマンス

    知っている方がいたら教えて下さい。 VBにて、OO4OでORACLEに接続し、マスタ存在のチェック(テーブル数:10テーブル、チェックデータ数:10000件)を行うとします。 下記の2つの処理では、1の方が速度が早いという認識だったのですが、実際のところどうなのでしょうか? また、どの位の差が出るのでしょうか? 1.ORACLEのストアドを作成し、チェック処理を行う。 2.VBより、SQL文を10回(テーブル数)発行し、チェック処理を行う。 テーブル数、データ数は特に気にしませんので、上記のような変更を行った方がいらしたら、どの位の速度改善になったのか、参考の為に教えて下さい。 よろしくお願いします。

  • VBでスタートフォームの設定方法

    全くのVB初心者です。初歩的なことだと思いますが、以下の件について教えてください。(VB6.0、WIN2000) ・フォームを2つ作りましたが、スタートフォームが最初に作成された方になります。あとに作った方をスタートフォームにする方法を教えてください。 ・それと、同じく2つのフォームがあって、一つ目のフォームのあるコマンドボタンをクリックすると、もうひとつのフォームに切り替わる方法を教えてください。 以上

  • VBでの動画再生で・・・

    こんばんわ VB6.0で動画を再生するソフトを作成しています。 DirectShowを使用して、動画をフォーム上で再生するまではできました。 更にやりたいことがあるのですが、方法がわかりません。 映画の字幕のように動画の上に文字を表示させたいのです。 (Labelを使用して、指定した時分に文字を表示させたい) (動画を表示しているところにLabelを作成してもLabelそのものが 動画の下になってしまい表示されていません・・・。) 例えば、1分55秒に「1分55秒経過」、2分00秒に「2分」などを表示したいのです。 どうしてもできないので、皆様の知恵をお貸しください。 よろしくお願いします。

  • VB.NETとEXE

    VB.NETで作成したフォーム(仮にメインフォームとします)にコマンドボタンを複数貼り付けています。 各コマンドボタンをクリックすると、それぞれの別のEXEが起動します。 (例 コマンドAをクリックすると、EXE-Aが起動、コマンドBをクリックするとEXE-Bが起動。両方一度に起動も可) この時、必ずメインフォームの上にEXEのフォームが重なるように表示されています。 そこで質問があります。 1、複数EXEが起動されている時、一番前面に表示されているEXEを識別する方法はありますか? 「現在アクティブなEXE」とは異なります。なぜなら、メインフォームをクリックすると、前面に表示されているEXEはアクティブな状態とはならないためです。 2、メインのフォームの右上にある「最大化」や「最小化」のボタンをクリックしたら、それに連動してEXEも最大化や最小化をするようにすることは可能でしょうか? すこしわかりにくいと思いますが、補足もしますので、アドバイスよろしくお願いします。

専門家に質問してみよう