So following my code that loop through a table, connect to sql server and send the datas of the table I have one more little constraint: I send something like 5400 rows and 13 columns of data row by row, cell by cell (which is not that slow actually!) but I need to set on some cell the condition: if I already sent the cell's content (ex: a client number already sent in database) I don't want to insert it twice so goto next iteration. Here is a simplified version of my loop:
nrow = 1
While My_range.Offset(nrow).Value <> "" 'continue if cell's not empty
'connect to the db and create a command that send the data
Set mobjCmd = New ADODB.Command
With mobjCmd
.ActiveConnection = mobjConn
.CommandText = "INSERT_PRODUCT"
.CommandType = adCmdStoredProc
.CommandTimeout = 0
'append the cell of the second row, first column in the db in the Client_id column in my SQL table
.Parameters.Append .CreateParameter("@Client_id", adChar, adParamInput, 255, Worksheets("My_Sheet").Range("A1").Offset(nrow, 0).Value)
.Execute
Wend
Basically I thought about something like:
If ... then GoTo NextIteration
End if
NextIteration: my_next_iteration
But what to set up i/o "..." so that if it see a client_id that it already sent it just goes to the next iteration.
Thanks in advance for your help !
I've had this issue a couple of times now and tend to use Worksheetfunction.countif
on each loop to check if any instances of the same figure occur above/below it.
In your case this would look something like;
If WorksheetFunction.Countif(Range(Cells(1, MyRange.Column), Cells(nrow, MyRange.Column)), MyRange.Offset(nrow).Value) > 0 Then GoTo NextIteration