前提・実現したいこと
excel vba で anywhere sql に接続をしたいのですが、書き方がわかりません。
データソース、場所、ユーザー名、パスワードすべてわかっていますが、ソースコードがわかりません。
参考になるものを教えていただけないでしょうか
試したこと
A5:SQL Mk-2 Version 2.15.1で接続、SQL文にて、データ取得することはできました。
VBAでの実現を目指しております
補足情報(FW/ツールのバージョンなど)
excel 2016
「A5:SQL Mk-2」での接続は汎用接続ですか?
また、その場合直接指定ですか?DSN経由ですか?

返信ありがとうございます。
ごめんなさい。接続方法はどこを確認すればよろしいのでしょうか。
sql anywhere ole db provider 17 というのを選べるので、

OLEDBならこっちですかね
https://www.google.co.jp/search?q=excel+vba+oledb
検索結果のページ一通り見て判らないなら、改めて質問してください
Oracleとか別のDBが引っかかりますが、プロバイダー名を使用するものに合わせれば使えると思います
'TNSサービス名で接続する場合(tnsnames.ora)
Private Const PROVIDER As String = "SQL Anywhere OLE DB Procider 17"
'Private Const DATA_SOURCE As String = "orcl" 'ネットサービス名
'TNSサービス名を使用せず直接接続する場合
Private Const HOST_NAME As String = "*********" 'データベースのホスト名orIPアドレス
Private Const PORT_NO As String = "****" 'データベースのポート
Private Const SERVICE_NAME As String = "******" 'サービス名
'データベースのアカウント情報
Private Const USER_ID As String = "DBA" 'データベースのユーザID
Private Const PASSWORD As String = "***" 'データベースのパスワード
Sub sample()
On Error GoTo ERR_HANDLER
Dim strSQL As String
Dim i As Long
'--------------------------------
' データベース接続
'--------------------------------
Dim cn As New ADODB.Connection
'TNSサービス名で接続する場合
'cn.ConnectionString = "Provider=" & PROVIDER _
' & ";Data Source=" & DATA_SOURCE _
' & ";User ID=" & USER_ID _
' & ";PASSWORD=" & PASSWORD
' cn.Open
' 'TNSサービス名を使用せず直接接続する場合
cn.ConnectionString = "Provider=" & PROVIDER _
'& ";Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)" _
& "(HOST=" & HOST_NAME & ")" _
& "(PORT=" & PORT_NO & "))" _
& "(CONNECT_DATA=" _
& "(SERVICE_NAME=" & SERVICE_NAME & ")))" _
& ";User ID=" & USER_ID _
& ";PASSWORD=" & PASSWORD
cn.Open
このようなコード見つけたのですが、接続できません。
*のところはきちんと入れています。
これじゃだめなのでしょうか

ソースは、質問文を編集して上の試した事あたりにコードの挿入で記載してください。
プロバイダー名は、ツール等に表示されているものと実際にプログラムで指定するものは異なります。製品名+OLEDBで検索したり、製品のドキュメントやサンプルを見ると大体記載されていると思いますので、製品の公式ページや関連ドキュメントを調べてみると良いと思います。
(というか、基本的に使用する製品のドキュメントやサンプルをまず最初に隅々まで読むべきだと思いますが)
ちなみに、上記のData Source指定はOracle固有の記述なので、他のDBだと異なります。

回答2件
あなたの回答
tips
プレビュー