データフォームウィザードでパーツ一覧を簡単に表示する方法について

このQ&Aのポイント
  • VB6.0でアクセス2003を使用している際に、社内での生産補助ソフトの一部としてパーツ一覧を表示する必要があります。そこで、データフォームウィザードを使用して簡単に一覧を表示する方法を試しています。しかし、フォームのロード時にNewキーワードの使用が不正というエラーが発生してしまいます。
  • Private Sub Form_Load()の部分で、データベースの接続を試しているのですが、Set db = New Connectionの行でエラーが発生しています。
  • このエラーの原因は何でしょうか?解決策を教えていただけないでしょうか?
回答を見る
  • ベストアンサー

データフォームウィザードで追加したのですが、、、

いつものように、わからなくなりましたのでご教授をお願いします。 VB6.0でアクセス2003を使用しています。 社内での生産補助ソフトみたいなものを作っています。 パーツ名や、材質などをフォーム1で作って、アクセスに保存します。 その入力した一覧を見るために、データフォームウィザードだと簡単に見れると知り、 手順通りに作成しました。しかし、ロード時にNewキーワードの 使用が不正ですとなってしまいます(>_<) こんな感じです。 変更したのは、変数名ぐらいです。 Private Sub Form_Load() 'フォームロード Dim db As Connection '接続として Dim dbpath As String 'データベースのパス用 dbpath = wakasadb Set db = New Connection ' db.CursorLocation = adUseClient db.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbpath & ";" Set adoPrimaryRS = New Recordset adoPrimaryRS.Open "select partname,xsize,ysize,kosuu from part Order by partname", db, adOpenStatic, adLockOptimistic Set grdDataGrid.DataSource = adoPrimaryRS mbDataChanged = False End Sub というのが、自動で出来上がったのですが、 Set db = New Connectionでストップします。 何が原因なのでしょうか(>_<) よろしくお願いします<(_ _)>

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

  • ベストアンサー
回答No.1

Dim db As adodb.Connection '接続として Set db = New adodb.Connection ' に変えてみたらどうでしょうか

satoshi777
質問者

お礼

あ、すいません。変数Dim adoPrimaryRS As Recordset 一番上にありました(>_<)Dim adoPrimaryRS As adodb.Recordset に直したらうまくいきました!!! ありがとうございます<(_ _)>

satoshi777
質問者

補足

ありがとうございます。 言われたように変更しました。 止まってたとこをクリアし、 Set adoPrimaryRS = New adodb.Recordset も変更しました。 そしたら、次は adoPrimaryRS.Open でメソッドまたはデータメンバが 見つかりませんとなります(>_<) オープンできません(/_;)

関連するQ&A

  • アクセスでADO 並べ替えが適用できない

    アクセスでADOを使っているのですが、 Sub test() Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset Set cn = CurrentProject.Connection rs.CursorLocation = adUseClient rs.Open "SELECT * FROM Q1", cn, adOpenStatic, adLockPessimistic rs.Sort = "受付日 DESC" For i = 1 To rs.RecordCount ・ ・ ・ このようなコードを作っていますが、 rs.Sortの部分で、「並べ替えを適用できません」になります。 レコード数は、15000件くらいです。 なぜ並べ替えができないのでしょうか? しょうがないからクエリで最初から並べ替えしておきますが、原因を教えてください。

  • 数値のMAXの値を取得したい ADO VBA

    アクセスです。 ADOで該当のフィールドの数値のMAXの値を取得するにはどうすればいいですか? テーブルの番号フィールドには、 1 2 3 4 5 と入っているのですが、 この場合、一番大きい値は5なので MAX関数のようなもので5を返したいのですが ADOにそのようなプロパティはありますか? オブジェクトブラウザーでRecordsetを見てみましたが 見つけられませんでした。 Sub Sample() Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset Set cn = CurrentProject.Connection rs.CursorLocation = adUseClient rs.Open "SELECT * FROM T_test", cn, adOpenStatic, adLockPessimistic rs.Sort = "番号 DESC" Debug.Print rs("番号").Value rs.Close: Set rs = Nothing cn.Close: Set cn = Nothing End Sub これで同じような動きは出来ますが、 もっとシンプルにできませんか?

  • MSFlexGridでデータの追加の方法は?

    VB6.0 WINXP DB:Oracle10g  よろしくお願いします。 SELECT文でデータベースからデータを取ってきてMSFlexGridにデータを送ったのですが、そのデータに更に追加したいと思います。 ' ADOのオブジェクト変数を宣言する Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim STRSQL As String 'Oracleとの接続 cn.Open "Provider=MSDAORA;" & _ "Data Source=NT;", "scott", "tiger" ' SQLステートメントを指定してレコードセットを作成する re.Open STRSQL = "select * from TOKUI WHERE A01 = 100" rs.CursorLocation = adUseClient rs.Open STRSQL, cn, adOpenDynamic, adLockBatchOptimistic 'グリッドに送る Set MSFlexGrid1.DataSource = rs 'ここからのSELECT文を追加したいと思います。 STRSQL = "SELECT TOKUI FROM WHERE A01 = 200" Set rs = New ADODB.Recordset rs.CursorLocation = adUseClient rs.Open STRSQL, cn, adOpenDynamic, adLockBatchOptimistic よろしくお願いします。

  • VB6とSQL SERVER 2005のADO接続方法

    VB6とSQL SERVER 2005(Developer Edition)のADO接続方法がわかりません。 今までSQLSERVER2000で開発していたのですが、DBをSQLSERVER2005に 変更したところ接続できませんでした。 以下はSQLSERVER2000時のソースなのですが、 2005の場合ConnectionStringはどうやればいいのでしょうか? --------------------------------------- Dim rs As ADODB.Recordset Dim cn As ADODB.Connection Set rs = New ADODB.Recordset Set cn = New ADODB.Connection cn.ConnectionString = "Provider=SQLOLEDB.1;" & _ "User ID=" & strUsr & ";" & _ "Data Source=" & strSvr & ";" & _ "Password=" & strPass cn.CursorLocation = adUseClient cn.Open --------------------------------------- 初歩的な質問で申し訳ありませんがどなたかお助けください。

  • ADOでRecordsetオブジェクトをレコードソースに設定したい

    Access2000を使っています。リンクテーブルを使わずに、ODBCで繋いだDBのテーブルをフォームのレコードソースにセットしたいのですが、可能でしょうか。 宜しくお願いします。 Private Sub FormNoKansu() Dim cn as New ADODB.Connection Dim rs as New ADODB.Recordset Dim strSql as String 'ODBCでサーバーに接続 cn.ConnectionString = "ODBCでMySQLに..." ... strSql = "SELECT * FROM ..." rs.Open strSql, cn 'ここに[rs]を入れられたらと思っています Me.Recordset = "" End Sub

  • VBAのfor next で繰り返しが出来ず・・・

    すいません1つ質問があります。 以前質問させて頂きましたが、ExcelのVlookupでACCESSのクエリを参照してレコードを取得したいです。 ADOでAccessのテーブルから持ってくることは出来ました。 が、繰り返しても最初の数字の9999しかもって来ません・・・。 下記が私の書いたコードとなります。 ExcelシートとACCESSテーブルを画像として添付します。 D2には9999、D3には55555・・・・と持ってくるようにしたいです。 原因と修正法を教えて頂ければ幸いです。 何卒よろしくお願いします。 Option Explicit Sub test() Dim db As ADODB.Connection Dim rs As ADODB.Recordset Dim strSQL As String Dim i As Long Dim Maxrow As Long Set db = New ADODB.Connection db.Provider = "Microsoft.ace.oledb.12.0" db.Open "C:\Users\Kei\Desktop\Test\Test.accdb" Set rs = New ADODB.Recordset rs.Open "Ship", db, adOpenStatic Maxrow = Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row For i = 2 To Maxrow strSQL = "select * from Ship where 商品名 =" & Cells(i, 1) & ";" Cells(i, 4) = rs!出荷数 Next i rs.Close db.Close Set db = Nothing Set rs = Nothing End Sub

  • ADO1とADO2は意味は同じですか?

    Private Sub ADO1() Dim cn As New ADODB.Connection cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source= " & CurrentProject.FullName cn.Close: Set cn = Nothing End Sub Private Sub ADO2() Dim cn As ADODB.Connection Set cn = New ADODB.Connection cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source= " & CurrentProject.FullName cn.Close: Set cn = Nothing End Sub は、 Dim cn As ADODB.Connection Set cn = New ADODB.Connection を簡素化したものが Dim cn As New ADODB.Connection になるのでしょうか?

  • ADOでテーブルにハイパーリンクを追加したい(アドレスと表示文字列は別)

    アクセスのtblのURLフィールドに 表示文字列→aaa URL→http://www.yahoo.co.jp/ を追加したいのですがうまくいきません。 (URLフィールドのデータ型はハイパーリンク型です) Sub test() Dim moji As String Dim URL As String Dim cn As ADODB.Connection Dim rs As ADODB.Recordset Set cn = New ADODB.Connection cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & "C:\Documents" & "\access.mdb" Set rs = New ADODB.Recordset rs.Open "tbl", cn, adOpenStatic, adLockPessimistic moji = "aaa" URL = "http://www.yahoo.co.jp/" rs.AddNew rs("URL") = "#" & moji & "#" rs("URL") = "#" & URL & "#" rs.Update Set rs = Nothing Set cn = Nothing End Sub を実行すると 結果は 表示文字列もアドレスも「http://www.yahoo.co.jp/」になってしまいます。(そりゃそうか) どうすれば 表示文字列→aaa URL→http://www.yahoo.co.jp/ が実現できるのでしょうか? よろしくお願いします。 (ヴァージョンは2003です)

  • アクセスのADO

    アクセスのADOで ウォッチ式にrsを登録してみていると rs.CursorLocation = adUseClient rs.Open "テーブル1", cn, adOpenStatic, adLockOptimistic を通過後は、 RecordCountには、20と数字が入るのですが、 rs.CursorLocation = adUseClient rs.Open "テーブル2", cn, adOpenStatic, adLockOptimistic にすると RecordCount : <データ プロバイダーまたはほかのサービスが E_FAIL 状態を返しました。> となってしまいます。 テーブルの中身が原因だと思うのですが どういう条件なら、 <データ プロバイダーまたはほかのサービスが E_FAIL 状態を返しました。> になるのでしょうか? rs.CursorLocation = adUseClient を使う理由は、 rs.Sort = "日付 DESC" とソートする為です。 参照設定はMicrosoft Activex Data Objects 2.8 Library にしています。 Access2010・32bitです。

  • ADO 「Set」は使ったほうがいいのでしょうか?

    Sub test1() Dim cn As ADODB.Connection Dim rs As ADODB.Recordset Set cn = New ADODB.Connection Set rs = New ADODB.Recordse End Sub Sub test2() Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset End Sub この二つは同じ意味ですか? 「Set」は使ったほうがいいのでしょうか? よろしくお願いします。

専門家に質問してみよう