• ベストアンサー

VBでデータベース!!

こんにちは。UNKOです。 Adodcコントロールを使用せずにOpenDatabase関数を使用してデータベースを開いた場合、そのデータベースのレコード内容をDataGridコントロール(若しくはACCESSでいう帳票フォームのような形)で表示する事は出来ないのでしょうか。または取得したレコードセットをDataGridコントロール(若しくはACCESSでいう帳票フォームのような形)で表示する方法はないでしょうか。宜しくお願い致します。

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

  • ベストアンサー
  • Rubellite
  • ベストアンサー率55% (10/18)
回答No.1

DBにACCESSを使用した場合です。 Option Explicit Private cn As ADODB.Connection Private rs As ADODB.Recordset Private Sub Form_Load() Set cn = New ADODB.Connection cn.ConnectionString = "Provider=Microsoft.jet.oledb.4.0;data source=c:\db\○○.mdb" cn.CursorLocation = adUseClient cn.Open Set rs = New ADODB.Recordset rs.Open "テーブル名", cn, adOpenStatic Set DataGrid1.DataSource = rs End Sub で、DataGrid1に表示します。

UNKO
質問者

お礼

ご返事遅れてしまい、申し訳ございませんでした。いろいろと有難うございました。

UNKO
質問者

補足

ご返事ありがどうございましたm(__)mまた質問なのですが、ODBCでSQLServerにADODB.Connectionで接続し、ConnectionTimeoutで接続時のタイムアウトを5秒に設定したのですが、実際に20秒以上かかってしまいます(SQLServerを立ち上げない状態で)。WorkspaceにLoginTimeoutを5秒で設定しOpenDatabaseでデータベースを開けなかった場合、きちんと5秒でエラーが出ていました。ADODB.Connectionで正確にタイムアウトエラーを出す方法はどのようにすれば良いのでしょうか?度々の質問で申し訳ありませんm(__)m

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • AccessのDataGridコントロールについて

    初心者です。宜しくお願いします。 VB6.0でDataGridコントロールを使用する場合は、DataSourceプロパティにRecordsetオブジェクトを代入することによりDataGridコントロールに取得したレコードセットを表示しますが、 例) Set DataGrid1.DataSource = rs Access 2000ではDataGridコントロールにDataSourceプロパティが見当たりません。 どのようにしてレコードセットを表示するのでしょうか? Google等で検索しましたがVBの情報ばかりでAccessのDataGridコントロールに関して取り上げているページが見つかりません。 宜しくお願いします。

  • 【VB】データグリッドコントロールにデータベースを表示させたい

    お世話になります。 フォーム上にMicrosoft DataGrid Control 6.0(OLEDB)を置いて、 データベースと接続し、データベースを表示させたいのですが、 データベースエンジンがMicrosoft.Jet.OLEDB3.51だとうまく表示してくれますが 4.0だとなぜか表示してくれません。 原因、対策などわかるでしょうか? ソースは以下のように単純なものです。 Private cn As ADODB.Connection Private rs As ADODB.Recordset Private Sub Form_Load() Set cn = New ADODB.Connection cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\パスワード管理.mdb" cn.Open Set rs = New ADODB.Recordset rs.Open "パスワード", cn, adOpenStatic, adLockReadOnly Set DataGrid1.DataSource = rs End Sub

  • グリッドにデータベースの更新を反映させるには?

    VB6.0SP5で開発しています。 単純なデータベースの更新プログラムなんですが、 更新した後にRefreshやRebindしても更新内容が反映されません。 ADODCをつかってグリッドに内容を表示しているのですが、 グリッドをクリックして選択した行のレコードを削除します。 そのあとに、ADODCをRefreshしてもグリッドをRefreshしても反映されないんです。 データは削除されています。 DataGrid,TDBGridの二つのグリッドで試したんですが、 どっちもだめでした。 みななんどうやって反映させているのでしょうか? どうぞ、よろしくお願いしますm(_ _)m

  • データベースロック(VB)

    お世話になってます。 VB6.0+ACCESS97 ADOを使用してます。 複数ユーザーで使用する為、データベースにロックをかけたいのですが いろいろ本なので調べましたところDAOなら set db = DBEngine.OpenDatabase("c:\~~.mdb",True) というようにExclusiveプロパティをTrueに設定すれば いいみたいですが。これと同じことをADOでは どのようにすればよろしいのでしょうか? VB初心者の為、ADOしかわからないもので(^_^; なにか良いアドバイスがあればお願いします。

  • データーベースへの入力

    こんにちは! 又、質問させて下さい。 ADOを使用してAccessデータベースに入力を行うプログラムについて ですが、 データベースをADODO.Connectionで開き、 レコードセットをコンボボックス参照用、 データ入力用 と二つ使用しているのですが、データ入力用に データを入れて更新しようとするとこのデータベースは読み取り 専用ですと表示されうまく行きません。 (レコードセットのロック処理は問題無いです。) 参照用と入力用はAccessデータベースでは違うテーブルです。 データベース接続一つにレコードセット二つ使用しているから ダメなのでしょうか? こういったプログラムを組んだ経験のある方、教えて下さい。

  • Accessの帳票形式のフォームについて

    いつも楽しく勉強させていただいております。 OSはWindows7。 フロントエンドがAccess2013でSQLServer2012がバックエンドです。 複数レコードを一度に表示するいわゆる帳票形式のフォームを作ります。 [保存]ボタンで変更を保存、[キャンセル]ボタンで保存しないでフォームを閉じます。 このようなフォームを作る際、私はこれまでこの方法でやってきました。 1.本物テーブルの内容をテンポラリのテーブルにコピー 2.テンポラリのテーブルと連結したフォームで編集 3.[保存]ボタンのクリックでテンポラリのテーブルで本物を上書き この方法の弱点は本物のテーブルにロックがかからないことです。 かといって本物のテーブルに連結したフォームにすると編集した内容をキャンセル することができません。 これを解決する根本的な方法はないものでしょうか。 たとえば帳票形式にする代わりにデータグリッドのようなコントロールを使用して 本物のテーブルにロックをかけつつ複数レコードの変更のキャンセルも可能という フォームは作れますか。 フォームをデザインビューで開いたときに見られるActiveXコントロールには データグリッドに類するコントロールはないようです。 ネットで調べるとVB6.0のDataGridコントロールを使用できるとか、 操作がうまくいかないとかAccessでVBのコントロールを使用するのはそもそも 許されないとか書いてあるのでデータグリッドを使う方法は無理でしょうか。 もう一度問題を整理すると、以下のようになります。 1.複数レコードを一度に表示して編集したい。 2.そのレコードにロックをかけたい。 3.編集のキャンセル(ロールバック)も可能にしたい。 帳票フォームでもデータグリッドでも方法は問いません。 あるいは「Accessでは実現できない」という情報でもいいです。 お詳しい方、どうかよろしくお願いいたします。

  • VB5.0でACCESS2002のテーブルをDBGridに表示

    VB5.0で開発したプログラム内でACCESS97のテーブルをDBグリッドに表示させていました。 ACCESSを2002にバージョンアップさせる必要があり、移行処理をしていましたが、そのままでは「データベースを認識できません」というエラーになってしまいます。DAOデータコントロールのDatabaseNameプロパティが設定できないようです。レコードセットでは読み込めているようなので、レコードセットをデータコントロールに割り当てたら表示されました。 そのときデータコントロールのrefreshはエラーになるためフォーム全体をrefreshしました。 ところがそれをコンパイルしてACESS2002のランタイムのみがインストールされているマシンにインストールするとDBグリッドが表示されません。 どうしたらよいでしょうか?こんな小手先の変更では無理でしょうか?宜しくお願いします。

  • データベースへのinfoの入力

     こんにちは、いつもお世話になっています。早速ですが、いま、VBの練習で、Microsoft Access のデーターベースを使ったプログラムを作っています。  ひとつのフォームにADODC と DataGrid を使って、アクセスのデーターを表示させ、下のFrameの中にVB作成のテキストボックスを作り、そこのテキストボックスに何かインフォメーションをいれ、”Add"コマンド(cmdAdd)をクリックするとそれらインフォメーションが新しいレコードとしてアクセスのデーターベースに記録されるようにしたいと思っています。 いまのところ、それらインフォメーションがアクセスのデーターベースに表示されるところまでは、できたのですが、上書き表示になってしまい、新しいレコードとしては、表示されません。もし、どなたか、解決方法を知っている方がいらっしゃいましたら、おしえてください。  一応、下に対象フォームのソースコードの一部を記入しておきます。まったく違っていたらどうか気になさらずにずばっと言ってくれたら幸いです。 Private Sub cmdAdd_Click() Dim intID As Integer, strFName As String, strLName As String, vntAddress As Variant, intID = Val(txtCustomerID.Text) strFName = txtFname.Text strLName = txtLname.Text vntAddress = txtAddress.Text adoCustomer.Recordset.Fields.Item(0).Value = intID adoCustomer.Recordset.Fields.Item(1).Value = strFName adoCustomer.Recordset.Fields.Item(2).Value = strLName adoCustomer.Recordset.Fields.Item(3).Value = vntAddress End Sub

  • VB6 DataGrid コントロールについて

    お世話になっております。 VB6でDataGridコントロールについてどなたか教えてください! いろいろ調べたのですが、昔のコントロールのせいかあまり資料がありませんでした。 DataGridをフォームに貼り付けました。 ExcelのB1セルをDataGridに表示したいのですが、わかりません。 VBのTextBoxに表示はできます。DataGridが全くわかりません。 どうか、ご教示お願い致します!

  • Accessのメインフォームとサブフォームの使い方について

    Accessにてメインフォーム(単票形式)+サブフォーム(帳票形式)を使って進捗管理をするデータベースを作っており、新規にメインフォームで入力し、サブフォームで入力したデータを表示させてます。 サブフォームで更新したいレコードをクリックしたときにメインフォームでそのレコードを表示させるにはどのようにすればよろしいのでしょうか?