Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

संग्रहीत कार्यविधियों का उपयोग करके SQL Server 2008 डेटाबेस को पढ़ने/लिखने के लिए Excel 2010 का उपयोग करें

मैंने एडी प्रमाणीकरण का उपयोग करके इस दृष्टिकोण के साथ जाना समाप्त कर दिया। मैंने प्रेरणा के लिए इस पोस्ट में उदाहरण का उपयोग किया है:http://www.eggheadcafe.com/community/sql-server/13/10141669/using-excel-to-update-data-on-ms-sql-tables .aspx

ध्यान दें कि ये फ़ंक्शन एक्सेल वर्कबुक (ऑब्जेक्ट्स, मॉड्यूल्स, दिस वर्कबुक) के विभिन्न क्षेत्रों में रहते हैं, लेकिन यहां एक त्वरित संदर्भ है।

मेरे पास प्रत्येक कॉलम है जो FK द्वारा संदर्भित तालिकाओं के विरुद्ध मान्य है।

यहां कुछ कोड नमूने दिए गए हैं:

Public aCon As New ADODB.Connection
Public aCmd As New ADODB.Command

Private Sub Workbook_Open()
  Application.EnableEvents = False
  PopulateSheet
  Application.EnableEvents = True
End Sub

Sub Connect()
  Dim sConn As String
  sConn = "Provider=SQLOLEDB;Trusted_Connection=Yes;Server=[SVR];Database=[DB]"
  With aCon
    .ConnectionString = sConn
    .CursorLocation = adUseClient
    .Open
  End With
  BuildProcs
End Sub

Sub BuildProcs()
  With aCmd
    .ActiveConnection = aCon
    .CommandType = adCmdStoredProc
    .CommandText = "[SPROC]"
    .Parameters.Append .CreateParameter("@in_EmployeeID", adInteger, adParamInput)
  End With

End Sub

Sub PopulateSheet()
  Dim n As Integer, r As Long

  Dim aCmdFetchEmployees As New ADODB.Command
  Dim aRstEmployees As New ADODB.Recordset

  If aCon.State = adStateClosed Then Connect

  With aCmdFetchEmployees
    .ActiveConnection = aCon
    .CommandType = adCmdStoredProc
    .CommandText = "[SPROC]"
    Set aRstEmployees = .Execute
  End With
  r = aRstEmployees.RecordCount

  Worksheets(1).Activate
  Application.ScreenUpdating = False
  Cells(2, 1).CopyFromRecordset aRstEmployees

  For n = 1 To aRstEmployees.Fields.Count
    Cells(1, n) = aRstEmployees(n - 1).Name
    Cells(1, n).EntireColumn.AutoFit
  Next
  Cells(1).EntireColumn.Hidden = True
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim cell As Range
  If aCon.State = adStateClosed Then Connect
    With aCmd
      .Parameters(0) = Cells(Target.Row, 1)
      .Parameters(1) = Cells(Target.Row, 4)
      .Parameters(2) = Cells(Target.Row, 5)
      .Parameters(3) = Cells(Target.Row, 6)
      .Parameters(4) = Cells(Target.Row, 7)
      .Parameters(5) = Cells(Target.Row, 8)
      .Parameters(6) = Cells(Target.Row, 10)
      .Parameters(7) = Cells(Target.Row, 11)
      .Parameters(8) = Cells(Target.Row, 12)
      .Parameters(9) = Cells(Target.Row, 13)
      .Parameters(10) = Cells(Target.Row, 14)
      .Parameters(11) = Cells(Target.Row, 15)
      .Parameters(12) = Cells(Target.Row, 16)
      .Execute , , adExecuteNoRecords
    End With

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. SQL में सभी संयोजन उत्पन्न करें

  2. SQL सर्वर - किसी संग्रहीत कार्यविधि में चर पास करने में समस्या

  3. SQL सर्वर में किसी तालिका से विशिष्ट रिकॉर्ड कैसे प्राप्त करें - SQL सर्वर / TSQL ट्यूटोरियल 112

  4. पीएचपी एसक्यूएल सर्वर आउटपुट पैरामीटर

  5. XQuery का उपयोग करके XML से पंक्तियों में मानों की सूची कैसे निकालें?