No.2ベストアンサー
- 回答日時:
どもども田吾作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
細かい回答ありがとうございます。
削除や変更もできるんですね。使用するかはわからないですけど
参考になりました。DSNやServerなどのプロパティ設定はODBCのデータソースファイルを作成してみて、エディタで確認しました。INIファイル形式になってました。
No.1
- 回答日時:
この関数を使えば出来るはずです。
Declare Function SQLConfigDataSource Lib "odbccp32.dll" (ByVal hwndParent As Integer, ByVal fRequest As Integer, ByVal lpszDriver As String, ByVal lpszAttributes As String) As Long
例
rtn = SQLConfigDataSource(0, 1, "ドライバ名", "DSN=データソース名" & Chr$(0) & "SERVER=サーバ名" & Chr$(0) & "DATABASE=データベース名" & Chr$(0))
早速の回答ありがとうございます。
なるほどAPI使うんですね。
そこで 補足質問何ですけど
●アクセスの場合
サーバー名は不要ですか?
またドライバは {Micrsoft Access Driver}でいいのでしょうか?
●SqlServerの場合
データベース名は不要ですか?
一応、簡易的にコーディングしてみましたが、実行後に
コントロールボックスのODBCアドニミストレータを開きましたが追加されていませんでした。rtn = は、0でした。rtn は実行時の返り値だと思うのですが、0てエラーなんですか?
いろいろと質問させていただいてすみませんがよろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA アドインについて お詳しい方 ご教授をお願いします。 相談事項 現在以下の対応を実施した所、 1 2022/11/02 16:53
- Visual Basic(VBA) Excel VBA マクロ ある列の最終行迄を参照し、別の列の空白セルに値を入力したいです 2 2023/03/05 02:44
- 転職 自動車登録事務は、未経験では難しいですか? 車検認証工場の求人がありました。 【仕事内容】 ・自動車 1 2022/04/16 19:41
- その他(IT・Webサービス) このアプリはアンインストールしても大丈夫? 5 2022/09/25 10:21
- Windows 10 Google日本語入力について 3 2022/10/20 15:51
- ハッキング・フィッシング詐欺 googleに保存されたパスワードが間違っている、、、 1 2022/06/22 20:50
- その他(ニュース・時事問題) 「マイナポイント」の登録について 5 2022/12/12 22:36
- YouTube youtubeで特定の登録者の動画だけを表示したい 3 2023/08/23 13:03
- YouTube いまさら聞けない質問#2 2 2022/09/14 11:02
- その他(SNS・コミュニケーションサービス) ぺアーズについて。アカウント登録ができないのですがBANされたのでしょうか? 2 2022/05/20 22:51
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
onenoteでノートブックを削除出...
-
特定のプロジェクトを削除するには
-
iPOD shuffle 曲の削除
-
iPhone7でドコモメール設定をし...
-
OKボタンが押せない
-
Windows VistaでCDからSDカード...
-
「K」のみのグレーと「K」を使...
-
PDFファイル印刷時、URLをフッ...
-
Word 2010で画面に2ページ並ん...
-
パワーポイントのプレゼンで
-
一太郎で封筒の宛名印刷したい...
-
フォトシショップのトンボの入れ方
-
bilibiliという動画サイトの動...
-
エクセルでPDFにB4サイズ...
-
一枚に裏表を印刷したい。
-
PCA会計
-
インターネット授業が始まり、...
-
Microsoft Office Visioの印刷...
-
PDFファイルを順番通りに印刷す...
-
PDFの一部のページを削除する方...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
onenoteでノートブックを削除出...
-
特定のプロジェクトを削除するには
-
リストボックスでの選択項目分...
-
メルカリに関しての質問です。 ...
-
ODBCの自動登録について
-
Excelで行挿入イベントをハンド...
-
行を削除する時に警告したい
-
MP3プレーヤーに書き込んだ曲を...
-
エクセルのVBAについて
-
Bamboo DockがDockから消えません
-
エクセルの編集(行間隔を一度...
-
SONY製RDR-HX50での「まる録の...
-
Word : ページ削除の仕方
-
Excelのチェックボックスの消...
-
Windows Mailで、アドレス帳の...
-
Wordで選択領域のバックスペー...
-
EXCEL2007で、挿入したチェック...
-
iPOD shuffle 曲の削除
-
FOMAカードの電話帳の削除の仕方
-
MSN Hotmailアドレスの削除
おすすめ情報