2011-03-20 93 views
0

我需要从一个表(多行)获取数据,并在修改和添加一些新字段后插入到其他表中。批量记录插入

例如:

表1
的itemid,
价格,
QNT,
date_of_dispatch

表2
Invoiceid,
Invoicedate,
CUSTOMER_ID,
的itemid,
价格,
QNT,
total_amt,
date_of_dispatch,
grandtotal

请帮我用的MS Access使它在ASP

+0

你到目前为止?你熟悉'ADODB.Connection'和SQL语句,比如'SELECT'和'INSERT INTO'吗? – 2011-03-20 13:51:22

+0

我能够使用while循环获取数据并在文本框中显示,但无法插入其他表中。 是的,我有一些SQL语句的知识。 – Dev 2011-03-20 14:08:47

回答

0

插入记录一个由一个在第一个表的记录中循环:

Dim oConn1 
Set oConn = Server.CreateObject("ADODB.Connection") 
oConn.Open "connection string here" 
Set oRS = oConn.Execute("Select * From Table1") 
Do Until oRS.EOF 
    strItemId = oRS("item_id") 
    strPrice = oRS("price") 
    '....get more data 
    '....also add new fields like: 
    Invoicedate = Date() 
    customer_id = 500 
    '....... 
    If Request("confirm_" & strItemId)="1" Then 
     strSQL = "Insert Into Table2 (itemid, price, customer_id, ...) Values ('" & strItemId & "', '" & strPrice & ', ..." 
     oConn.Execute(strSQL) 
     Response.Write("Item " & strItemId & " inserted<br />") 
    Else 
     Response.Write("Confirm insert of item " & strItemId & " <input type=""checkbox"" name=""confirm_" & strItemId & """ value=""1"" />") 
    End If 
    oRS.MoveNext 
Loop 
oRS.Close 

这是基本的方法,希望它足够清楚。

编辑:增加了对确认每个记录的支持 - 现在每个记录都会显示复选框,并且只有当复选框被选中时,INSERT语句才会发生。这是每个item_id作为某种“关键”,你也可以使用任何其他独特的价值。

+0

HI, 是的,这是最好的基本方法,但我们不能在第一次使用插入,首先我们必须显示所有的记录,并给用户选择做一些修正,如果需要的话,最后我们可以去保存数据。 我希望你能找到我。 – Dev 2011-03-21 00:51:40

+0

@Dev我想我已经得到你,看我的编辑。 – 2011-03-21 08:27:35