Link to home
Start Free TrialLog in
Avatar of W.E.B
W.E.B

asked on

Macro to insert in SQL 2008

Hello,
can you please help.
Attached is a sample data.
I need to insert a note to each order into my SQL database.
need to find the highest NoteNumber, then add 1.

Option Explicit
Sub Insert_Notes()
Dim sh As Worksheet
Dim cnn As adodb.Connection
Set sh = Sheets("Import")
Dim rs As New adodb.Recordset
Dim sql As String
Set cnn = New adodb.Connection

cnn.Open "Provider=SQLOLEDB.1;User ID=sa; password=xxxx;Initial Catalog=xxxx;Data Source=111.111.111.111;"

SET IDENTITY_INSERT ActiverNotes ON
INSERT INTO ActiveNotes (NoteNumber,OrderNo,NoteText,EnteredBy,EnteredOnDate,IsPublicNote,OrderNoteTypeID) VALUES (MAX(NoteNumber)+1,Order Numbers from Column "AL",'Tracking from Column "AK"','System','Date from Column "AM"',4)
SET IDENTITY_INSERT ActiveNotes OFF
Commit
End Sub

Your help is very much Appreciated.
Book1.xls
Avatar of EugeneZ
EugeneZ
Flag of United States of America image

if your NoteNumber is auto-incremental - it will be populated for each insert

if it is not you need - please clarify


Sub Insert_Notes()
Dim sh As Worksheet
Dim cnn As adodb.Connection
Set sh = Sheets("Import")
Dim rs As New adodb.Recordset
Dim sql As String
Set cnn = New adodb.Connection

cnn.Open "Provider=SQLOLEDB.1;User ID=sa; password=xxxx;Initial Catalog=xxxx;Data Source=111.111.111.111;"


INSERT INTO ActiveNotes (OrderNo,NoteText,EnteredBy,EnteredOnDate,IsPublicNote,OrderNoteTypeID) 
VALUES ( 'Order Numbers', 'from Column "AL"','Tracking from Column "AK"','System','Date from Column "AM"',4)

Commit
End Sub

Open in new window

Avatar of W.E.B
W.E.B

ASKER

Hello,
I need to insert the next note Number.
if your ActiveNotes  table's column NoteNumber is set as the identity column <=> auto incremental
you'll get the next number

---

if it is not  or you have some specific  logic (it is just an idea)
you can try this not

SET IDENTITY_INSERT ActiverNotes ON
INSERT INTO ActiveNotes (NoteNumber,OrderNo,NoteText,EnteredBy,EnteredOnDate,IsPublicNote,OrderNoteTypeID) 
Select (select MAX(NoteNumber)+1 from ActiveNotes ) as MAX_NoteNumber,'Order Numbers ','from Column "AL"','Tracking from Column "AK"','System','Date from Column "AM"',4
SET IDENTITY_INSERT ActiveNotes OFF

Open in new window

Avatar of W.E.B

ASKER

Ho w do I insert the orders one after another?
Dim i as Integer,
next i,...

I wanted it to go through the orders one after another till last raw in column?
Thanks
did you review the posted above code?
Avatar of W.E.B

ASKER

HI EugeneZ
What I meant
'Order Numbers ','from Column "AL"',
'Tracking from Column "AK"','
'Date from Column "AM"'

How do I get these into my Insert?
so far
we know from you code

that table  ActiveNotes
has columns
NoteNumber,OrderNo,NoteText,EnteredBy,EnteredOnDate,IsPublicNote,OrderNoteTypeID

can you tell more about
'Order Numbers ','from Column "AL"',
'Tracking from Column "AK"','
'Date from Column "AM"'?

for example from what table is AL column?

what does it mean 'Order Numbers ','from Column "AL"',?
can you illustrate?
Avatar of W.E.B

ASKER

In My original question, I attached  a sample excel.
in Column AL , I have my order numbers
Column AK, I Have the NoteText
Column AM, I have the Date

I Get the excel sheet daily with Different order numbers (Column AL), notes (Column AK), dates (cOLUMN AM).

I need to insert into the database.

I'll  put the values into Column AL, AK, AM.

so,
Insert into My database the value for Note, date,.. for orderNumber in Raw 2
then, Raw 3, Then Raw 4,.... till last.

Thanks,
ASKER CERTIFIED SOLUTION
Avatar of EugeneZ
EugeneZ
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of W.E.B

ASKER

EugeneZ,
Thank you very much,
This worked.
Avatar of W.E.B

ASKER

Thank you.