プロが教える店舗&オフィスのセキュリティ対策術

いつも有難うございます。
SQLサーバーのやり方を教えていただきたいです。
今、ADOで 他のエクセルBookに接続して
SQL文を発行して実行することはできます。

ただ、SQLサーバーとはなにか興味がでてきました。
そこで今、ADOで 他のエクセルBookに接続して
SQL文を発行していますが、同じようなことを
実行する方法を教えていただきたいです。

下記のコードはそれらしいのをみつけたのですが、
どうしたらよいのかさっばりです。


Option Explicit

Private mCon As ADODB.Connection

' Connectionオブジェクトを生成
Public Sub connect()
Dim cn As String

'+ *** 接続文字列 ***
' サーバのIP/ホスト名とDBインスタンス名は適当に書き換えられたし
cn = _
"Provider=SQLOLEDB;" & _
"Network Library=DBMSSOCN; " & _
"Trusted_connection=yes; " & _
"Data Source=127.0.0.1,1433; " & _
"Server=127.0.0.1\SQLSERVER; "

Set mCon = New ADODB.Connection

mCon.CursorLocation = adUseClient
mCon.Open cn
End Sub

' データベースへの接続を解除する
Public Sub disconnect()
mCon.Close
Set mCon = Nothing
End Sub

' 引数のSQL文を実行し、ADODB.Recordsetを返す
Public Function execute(sql As String) As ADODB.Recordset
Dim rs As New ADODB.Recordset

' タイムアウト設定 (20分)
mCon.CommandTimeout = 60 * 20

' 処理された行数を示すメッセージが結果セットの一部として返されないようにする
mCon.execute ("SET NOCOUNT ON")

' 警告メッセージが結果セットの一部として返されないようにする
mCon.execute ("SET ANSI_WARNINGS OFF")

' オーバーフローおよび0除算時にはNULLを返す
mCon.execute ("SET ARITHABORT OFF")


rs.Open sql, mCon, adOpenStatic, adLockBatchOptimistic

Do
' レコードの操作ができるオブジェクト若しくは次のRecordSetがとれず、コネクションが空になった場合終了
If rs.State = adStateOpen Or rs.ActiveConnection Is Nothing Then
Exit Do
End If
Set rs = rs.NextRecordset()
Loop

Set execute = rs

' 設定OFF
mCon.execute ("SET NOCOUNT OFF")
mCon.execute ("SET ANSI_WARNINGS ON")
mCon.execute ("SET ARITHABORT ON")
End Function

' トランザクションを開始する
Public Sub BeginTransaction()
mCon.BeginTrans
End Sub

' トランザクションをコミットする
Public Sub CommitTransaction()
mCon.CommitTrans
End Sub

' トランザクションをロールバックする
Public Sub RollbackTransaction()
mCon.RollbackTrans
End Sub

A 回答 (1件)

MSのSQLサーバーですかね?


ACCESSとかから接続したほうがやりやすいかもしれません
ODBCなどの利用を検討ください

アプリからの利用でなければWEB系のUIの方が楽かもしれませんが・・・
    • good
    • 0
この回答へのお礼

ありがとうございました。
もう少しできるようになりましたら、
やります。
まだ、はやかつたです。

お礼日時:2020/11/04 14:12

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