Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Menggunakan Excel VBA untuk menjalankan kueri SQL

Di bawah ini adalah kode yang saat ini saya gunakan untuk menarik data dari MS SQL Server 2008 ke VBA. Anda perlu memastikan bahwa Anda memiliki referensi ADODB yang tepat [VBA Editor->Tools->Referensi ] dan pastikan Anda memiliki Perpustakaan Objek Data Microsoft ActiveX 2.8 dicentang, yang merupakan baris kedua dari bawah yang dicentang (saya menggunakan Excel 2010 pada Windows 7; Anda mungkin memiliki versi ActiveX yang sedikit berbeda, tetapi akan tetap dimulai dengan Microsoft ActiveX):

Sub Modul untuk Menghubungkan ke MS SQL dengan Host Jarak Jauh &Nama Pengguna/Kata Sandi

Sub Download_Standard_BOM()
'Initializes variables
Dim cnn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim ConnectionString As String
Dim StrQuery As String

'Setup the connection string for accessing MS SQL database
   'Make sure to change:
       '1: PASSWORD
       '2: USERNAME
       '3: REMOTE_IP_ADDRESS
       '4: DATABASE
    ConnectionString = "Provider=SQLOLEDB.1;Password=PASSWORD;Persist Security Info=True;User ID=USERNAME;Data Source=REMOTE_IP_ADDRESS;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Use Encryption for Data=False;Tag with column collation when possible=False;Initial Catalog=DATABASE"

    'Opens connection to the database
    cnn.Open ConnectionString
    'Timeout error in seconds for executing the entire query; this will run for 15 minutes before VBA timesout, but your database might timeout before this value
    cnn.CommandTimeout = 900

    'This is your actual MS SQL query that you need to run; you should check this query first using a more robust SQL editor (such as HeidiSQL) to ensure your query is valid
    StrQuery = "SELECT TOP 10 * FROM tbl_table"

    'Performs the actual query
    rst.Open StrQuery, cnn
    'Dumps all the results from the StrQuery into cell A2 of the first sheet in the active workbook
    Sheets(1).Range("A2").CopyFromRecordset rst
End Sub



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana TRY_CAST() Bekerja di SQL Server

  2. Setiap ekspresi GROUP BY harus berisi setidaknya satu kolom yang bukan referensi luar

  3. Sintaks salah di dekat ')' memanggil prosedur tersimpan dengan GETDATE

  4. Bagaimana cara membatasi NULL sebagai parameter untuk prosedur tersimpan SQL Server?

  5. Kueri yang terakhir dieksekusi untuk database tertentu