質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

解決済

1回答

4538閲覧

SQLServerのテーブルを参照したい。

Yuyuu

総合スコア12

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

1グッド

0クリップ

投稿2018/06/19 04:56

前提・実現したいこと

Accessで作業をしていましたが、テーブルをSQLServerに移動したいということで、
SQLServer側に、テーブルを複製しました。
Access側のテーブルは削除してあります。

サーバー側の、ファイアウォール、TCP/IPの設定、ネットワーク構成などは済んでおり、
クライアント側のAccessから、ODBC接続出来ている状態です。

SQLServer側にあるテーブルの内容を、
Accessのリストボックスに反映させたいです。

発生している問題・エラーメッセージ

Me.カテゴリリスト.RowSource = "rst" コンパイルエラー 型が一致しません。 .RowSourceの部分で発生しています。

該当のソースコード

Sub Form_Current() Dim rst As New ADODB.Recordset Dim cnn As New ADODB.Connection cnn.ConnectionString = "Provider=SQLOLEDB;" _ & "Data Source=TSV-03;" _ & "Initial Catalog=生産管理;" _ & "User ID=sa;" _ & "Password=*****" cnn.Open rst.Open "SELECT * FROM T_Category", cnn Me.カテゴリリスト.RowSource = rst rst.Close Set rst = Nothing cnn.Close Set cnn = Nothing End Sub

試したこと

.Rouwsourceで参照できていないのかと思い、
rstを""で囲ってみたり、
Me.カテゴリリスト.RowSource = "T_Category"
に変更してみました。

補足情報(FW/ツールのバージョンなど)

環境
Windows10
Access2016
SQLServer2014Express

AnnaBedulina👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

セットするプロパティは.RowSourceではなく、ListBox.Recordset プロパティ (Access)じゃないかと。

投稿2018/06/19 05:50

sazi

総合スコア25138

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Yuyuu

2018/06/19 06:28

ご回答ありがとうございます! 参考ページを読ませていただいたのですが、理解力が足らず、 わかっていない状態です。 Me.カテゴリリスト.rst になるということでしょうか?
sazi

2018/06/19 06:38

Me.カテゴリリスト.Recordset = rst です。
Yuyuu

2018/06/19 06:55

ありがとうございます! Me.カテゴリリスト.Recordset = rst に変更したら「オブジェクト変数または、Withブロック変数が設定されていません」 となりました。 rst自体は、サーバーのテーブル情報を抽出しただけで、取得していないからでしょうか。 もしそうだった場合、どうやってテーブルの情報を取得させたら良いのでしょうか。
sazi

2018/06/19 07:10

失礼しました。setが漏れていました。 set Me.カテゴリリスト.Recordset = rst
Yuyuu

2018/06/19 07:19

Setをつけてみたところ、 「Reordset/レコードセット”プロパティの設定に、そのオブジェクトは使えません」 と表示されました。 ただ、SQL文の前に rst.CursorLocation = adUseClient と記述したら、取得して表示させることができました。 ご教示頂き、ありがとうございました!
Yuyuu

2018/06/20 00:59

まだ見ておりませんでした。 勉強させていただきます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問