[PR]ネットとスマホ まとめておトク!

VBAでDSN(Microsoft ODBC for Oracle)を作成することは
可能でしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (1件)

検索するとそれらしいのがあります



http://www.accessclub.jp/bbs5/0020/vba5763.html

この回答への補足

Private Declare Function SQLConfigDataSource Lib "ODBCCP32.DLL" _
(ByValhwndParent As Long, _
ByVal fRequest As Long, _
ByVal lpszDriver As String, _
ByVal lpszAttributes As String) As Long

Private Const ODBC_ADD_SYS_DSN = 4
Private Const ODBC_REMOVE_SYS_DSN = 6
-------------------------------------------
Dim REMOVE_RTN As Long
Dim ADD_RTN As Long
Dim DRIVER As String
Dim ATTRIBUTES As String

DRIVER = "Microsoft ODBC for Oracle"

ATTRIBUTES = "DSN=AAA" + vbNullChar & _
"UID=AAA" + vbNullChar & _
"Server=AAA"

REMOVE_RTN = SQLConfigDataSource(0, ODBC_REMOVE_SYS_DSN, DRIVER, ATTRIBUTES)
ADD_RTN = SQLConfigDataSource(0, ODBC_ADD_SYS_DSN, DRIVER, ATTRIBUTES)

現在以上のようなコーディングを行っていますが
動作しませんでした。おそらくMicrosoft ODBC for Oracleに対する設定項目が間違ってるのではないかと思います。
色々試したのですが、動作しませんでした。

補足日時:2008/05/23 17:39
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aと関連する良く見られている質問

QODBCの自動登録について

VB6のプログラム上から、ODBCのデータソースを登録する方法は、ありますか?

Aベストアンサー

どもども田吾作7です。
以下のソースを標準モジュールにて実行してみてください。

※注意
スペースは全て全角で行っていますので、コピペがうまくいかないときは、全角スペース1つを、半角スペース2つに置き換えてください。


Option Explicit

Private Const ODBC_ADD_DSN = 1  ' 追加
Private Const ODBC_CONFIG_DSN = 2 ' 編集
Private Const ODBC_REMOVE_DSN = 3 ' 削除

Private Declare Function SQLConfigDataSource Lib "ODBCCP32.DLL" _
    (ByVal hwndParent As Long, _
     ByVal fRequest As Long, _
     ByVal lpszDriver As String, _
     ByVal lpszAttributes As String) As Long

Sub Main()
  'SQL-Server
  Call AddDSN_SQL("SQL_DSN")
  Call RemoveDSN("SQL_DSN", "SQL Server")
  
  'Access
  Call AddDSN_ACCESS("AccessDSN", "《MDBファイルのフルパス》")
  Call RemoveDSN("AccessDSN", "Microsoft Access Driver (*.mdb)")
End Sub


' データソースの追加 for SQL-Server
Private Sub AddDSN_SQL(inDSNName As String)
  Dim wkSts      As Long
  Dim strDriver    As String
  Dim strAttributes  As String
  
  ' ODBCドライバ
  strDriver = "SQL Server"
  
  ' 属性
  strAttributes = "DSN=" & inDSNName & vbNullChar & _
          "Description=SampleDSN" & vbNullChar & _
          "Server=(local)" & vbNullChar & _
          "Database=pubs" & vbNullChar
  
  ' データソースの登録
  wkSts = SQLConfigDataSource(0&, ODBC_ADD_DSN, strDriver, strAttributes)
  
  ' 登録の成功・失敗の判断
  If wkSts Then
    MsgBox "登録成功 SQL"
  Else
    MsgBox "登録失敗 SQL"
  End If
  
End Sub

' データソースの追加 for ACCESS
Private Sub AddDSN_ACCESS(inDSNName As String, inMdbFile As String)
  Dim wkSts      As Long
  Dim strDriver    As String
  Dim strAttributes  As String
  
  ' ODBCドライバ
  strDriver = "Microsoft Access Driver (*.mdb)"
  
  ' 属性
  strAttributes = "DSN=" & inDSNName & vbNullChar & _
          "Uid=Admin" & vbNullChar & "pwd=" & vbNullChar & _
          "DBQ=" & inMdbFile & vbNullChar
   
  ' データソースの登録
  wkSts = SQLConfigDataSource(0&, ODBC_ADD_DSN, strDriver, strAttributes)
  
  ' 登録の成功・失敗の判断
  If wkSts Then
    MsgBox "登録成功 ACCESS"
  Else
    MsgBox "登録失敗 ACCESS"
  End If
End Sub

' データソースの削除
Private Sub RemoveDSN(inDSNName As String, inServerDriver As String)
  Dim wkSts      As Long
  Dim strDriver    As String
  Dim strAttributes  As String
  
  ' ドライバ名を指定する
  strDriver = inServerDriver
  
  ' 削除するデータソース名を指定する
  strAttributes = "DSN=" & inDSNName & vbNullChar
  
  ' データソースを削除する
  wkSts = SQLConfigDataSource(0, ODBC_REMOVE_DSN, strDriver, strAttributes)
  
  ' 削除の成功・失敗の判断
  If wkSts Then
    MsgBox "削除成功"
  Else
    MsgBox "削除失敗"
  End If
End Sub

どもども田吾作7です。
以下のソースを標準モジュールにて実行してみてください。

※注意
スペースは全て全角で行っていますので、コピペがうまくいかないときは、全角スペース1つを、半角スペース2つに置き換えてください。


Option Explicit

Private Const ODBC_ADD_DSN = 1  ' 追加
Private Const ODBC_CONFIG_DSN = 2 ' 編集
Private Const ODBC_REMOVE_DSN = 3 ' 削除

Private Declare Function SQLConfigDataSource Lib "ODBCCP32.DLL" _
    (ByVal hwndParent As Long, _
  ...続きを読む

QSQLConfigDataSourceについて。

 VBからODBCに登録するプログラムを作っています。
 API関数のSQLConfigDataSourceを使っています。
 ヘルプやネットで調べて、作成することはできました。
 が、パスワードとユーザ名が登録していない状況での
 ことです。
 ここにもいくつかODBCに接続に関しての投稿を見ました。
 パスワードとユーザ名指定しているサンプルやURL
 なんかもあったのでいってみて、実際に自分のプログラムでも
 試したのですがどうもうまくいきません。

 SQLConfigDataSourceの引数のひとつである、ODBC_REMOVE_SYS_DSNと
 ODBC_ADD_SYS_DSNを使いました。
 ODBC_REMOVE_DSNとODBC_ADD_SYSを先に使ってみましたが
 こちらもできませんでした。
 なぜ"SYS"がつくものとつかないものふたつあるのでしょうか?
 先に質問のパスワードとユーザー名指定して登録できないのは、
 これと関係あるのでしょうか?
 
 全くの初心者で申し訳ありませんが、よろしくお願いします。

 VBからODBCに登録するプログラムを作っています。
 API関数のSQLConfigDataSourceを使っています。
 ヘルプやネットで調べて、作成することはできました。
 が、パスワードとユーザ名が登録していない状況での
 ことです。
 ここにもいくつかODBCに接続に関しての投稿を見ました。
 パスワードとユーザ名指定しているサンプルやURL
 なんかもあったのでいってみて、実際に自分のプログラムでも
 試したのですがどうもうまくいきません。

 SQLConfigDataSourceの引数のひとつである、ODBC...続きを読む

Aベストアンサー

SQLさばについて

データベースのプロパティのセキュリティタブに認証方式がある
混合モード/Windows認証
これらはDBをSQLさばをインストールするときに選択を求められる
接続先のDBをおいているマシンにユーザ権限があって、しかもパスワードが同じなら、Windows認証が働いて、入れてしまう。

SQLさばは、誉れ高いMS商品
初期設定が初心者向きで扱い易い
しかしちょっとつつけば、すーぱゆーざ権限で入れるというセキュリティの弱さダントツを秘めた諸刃の剣


これを回避するにはWin認証を行わない。
ドメイン環境でActiveDirectoryを導入。
などのデフォルト設定以外の事をしないとだめズラ

QODBCのデータソース登録内容の確認

VB6上で、ODBCのデータソースの自動登録を行おうと思っています。
その際、実際の登録処理を行う前に、
既にデータソースへ登録されているかどうかを
チェックしたいのですが、どのようにすればいいのでしょうか?
(チェックしたいのはシステムDSNの内容です・・・)

Aベストアンサー

多少ODBCを勉強しなおしましたので、報告いたします。
O S:WIN2KServer SP2
TOOL:VB6SP5
での検証報告です。


Cのヘッダファイル
C:\Profram Files\Microsoft Visual Studio\Vc98\Inculude\ODBCINST.H

// SQLConfigDataSource request flags
#define ODBC_ADD_DSN 1 // Add data source
#define ODBC_CONFIG_DSN 2 // Configure (edit) data source
#define ODBC_REMOVE_DSN 3 // Remove data source

#if (ODBCVER >= 0x0250)
#define ODBC_ADD_SYS_DSN 4 // add a system DSN
#define ODBC_CONFIG_SYS_DSN5 // Configure a system DSN
#define ODBC_REMOVE_SYS_DSN6 // remove a system DSN
#if (ODBCVER >= 0x0300)
#define ODBC_REMOVE_DEFAULT_DSN7// remove the default DSN
#endif /* ODBCVER >= 0x0300 */
という宣言がありました。
SQLConfigDataSource関数に与える定数を変更することで、システムDSNへの登録が可能なようです。(未検証)


さらにユーザDSNの情報は
HKEY_CURRENT_USER\Software\ODBC\ODBC.INI
システムDSNの情報は
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI
内部に設定されるようです。

システムDSNの情報はレジストリを読み取ることによって可能だと思います。

参考URLは二つあります。
http://www.galliver.co.jp/writing/msdn/msdn01/index.html(かなり下の方)
http://www.vbvbvb.com/jp/gtips/index0251.html(レジストリ操作)

参考URL:http://www.vbvbvb.com/jp/gtips/index0251.html

多少ODBCを勉強しなおしましたので、報告いたします。
O S:WIN2KServer SP2
TOOL:VB6SP5
での検証報告です。


Cのヘッダファイル
C:\Profram Files\Microsoft Visual Studio\Vc98\Inculude\ODBCINST.H

// SQLConfigDataSource request flags
#define ODBC_ADD_DSN 1 // Add data source
#define ODBC_CONFIG_DSN 2 // Configure (edit) data source
#define ODBC_REMOVE_DSN 3 // Remove data source

#if (ODBCVER >= 0x0250)
#define ...続きを読む

QMicrosoft ODBC Driver for Oracleというドライバーをダウンロードしたいのですが・・・・。

こんにちわ。
Microsoft ODBC Driver for Oracleというドライバーをダウンロードしたいの
ですが、どこからダウンロードしたらよいのでしょう?
ご存知の方がいらっしゃいましたら、教えてください。

Aベストアンサー

http://support.microsoft.com/support/kb/articles/Q175/0/18.ASP

での情報によると「MDAC 2.1 SP2」に含まれるようです。

参考URL:http://www.microsoft.com/data/download_21242023.htm,http://www.microsoft.com/data/download_25SP2.htm

QODBCの設定をコピーしたい。

ODBCの設定を他のマシンに大量コピーをしたいのですがどうしたら良いでしょうか?
出来ればバッチ等で対応したいのですが…
教えてください。
なにとぞ宜しく御願いいたします。

Aベストアンサー

こんにちは。

milkiさんのODBCの設定がどのタイプであるか解りませんが
設定内容はここから取ることができます。

◆ユーザーDSN

<レジストリ>
HKEY_CURRENT_USER\Software\ODBC\ODBC.INI
HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources
の中にあるキーと値

◆システムDSN

<レジストリ>
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources
の中にあるキーと値

◆ファイルDSN
<レジストリ>
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC File DSN#DefaultDSNDir
に指定されているディレクトリの中のファイル

レジストリはレジストリエディタなどでファイルに書き出し
そのファイルを他のマシンに取り込ませれば良いでしょうか。
通常、ファイルをダブルクリックで取り込まれます。

※当方WindowsNT4.0なのでもしかしたら構成等違うかもしれませんがお許しください。

こんにちは。

milkiさんのODBCの設定がどのタイプであるか解りませんが
設定内容はここから取ることができます。

◆ユーザーDSN

<レジストリ>
HKEY_CURRENT_USER\Software\ODBC\ODBC.INI
HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources
の中にあるキーと値

◆システムDSN

<レジストリ>
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources
の中にあるキーと値

◆ファイルDSN
<レジストリ>
HKEY_LOCAL_MACHINE\S...続きを読む


人気Q&Aランキング

おすすめ情報