title: Export new data only from Excel to SQL
body: <p>The following Excel VBA code exports data from a spreadsheet to SQL:</p>
  
  <pre><code>Sub SQLIM()
  
            ' Send data to SQL Server
       ' This code loads data from an Excel  Worksheet to an SQL Server Table
       ' Data should start in column A and should be in the same order as the server table
       ' Autonumber fields should NOT be included'
       ' FOR THIS CODE TO WORK
       ' In  VBE you need to go Tools  References and check Microsoft Active X Data  Objects 2.x library
  
  
      Dim Cn As ADODB.Connection
      Dim ServerName As String
      Dim DatabaseName As String
      Dim TableName As String
      Dim UserID As String
      Dim Password As String
      Dim rs As ADODB.Recordset
      Dim RowCounter As Long
      Dim ColCounter As Integer
      Dim NoOfFields As Integer
      Dim StartRow As Long
      Dim EndRow As Long
      Dim shtSheetToWork As Worksheet
      Set shtSheetToWork = ActiveWorkbook.Worksheets("Sheet1")
      Set rs = New ADODB.Recordset
  
  
      ServerName = "WIN764X\sqlexpress" ' Enter your server name here
      DatabaseName = "two28it" ' Enter your  database name here
      TableName = "COS" ' Enter your Table name here
      UserID = "" ' Enter your user ID here
       ' (Leave ID and Password blank if using windows Authentification")
      Password = "" ' Enter your password here
      NoOfFields = 7 ' Enter number of fields to update (eg. columns in your worksheet)
      StartRow = 2 ' Enter row in sheet to start reading  records
      EndRow = shtSheetToWork.Cells(Rows.Count, 1).End(xlUp).Row ' Enter row of last record in sheet
  
       '  CHANGES
     ' Dim shtSheetToWork As Worksheet
     ' Set shtSheetToWork = ActiveWorkbook.Worksheets("Sheet1")
       '********
  
      Set Cn = New ADODB.Connection
      Cn.Open "Driver={SQL Server};Server=" &amp; ServerName &amp; ";Database=" &amp; DatabaseName &amp; _
      ";Uid=" &amp; UserID &amp; ";Pwd=" &amp; Password &amp; ";"
  
      rs.Open TableName, Cn, adOpenKeyset, adLockOptimistic
  
      For RowCounter = StartRow To EndRow
          rs.AddNew
          For ColCounter = 1 To NoOfFields
              rs(ColCounter - 1) = shtSheetToWork.Cells(RowCounter, ColCounter)
          Next ColCounter
      Next RowCounter
      rs.UpdateBatch
  
       ' Tidy up
      rs.Close
      Set rs = Nothing
      Cn.Close
      Set Cn = Nothing
  
  End Sub
  </code></pre>
  
  <p>I want to modify the code to:</p>
  
  <ol>
  <li>Check if data from column A already exists in the SQL Table.</li>
  <li>If the data exists, then only update rather than import as a new role.</li>
  <li>if the data does not exist, then import it as a new role.</li>
  </ol>