none
access 裡面使用vba , 如何將多筆 INSERT INTO 的指令合併後,再一次性執行 db.Execute RRS feed

  • 問題

  • Public db As DAO.Database
    .....

    db.Execute "INSERT INTO  sTableName1 sFields VALUES1"  ' <= 這邊就精簡一下
    db.Execute "INSERT INTO  sTableName2 sFields VALUES2"
    db.Execute "INSERT INTO  sTableName3 sFields VALUES3"
    db.Execute "INSERT INTO  sTableName1 sFields VALUES1"
    .........

    想請教的是 :
    有辦法先將多筆 INSERT INTO 的指令合併成一串之後 , 再一次性的交由 Execute 處理嗎?

    假設可以 :
    若將多筆指令存成文字檔
    之後開檔將讀取的文字資料一次性的交由 Execute 處理時
    是否有資料長度的限制?(例如最多只能處理多少筆或是處理多少指令資料長度?)

    THANKS

    2015年6月23日 上午 02:50

解答

  • 如果都是相同的 SQL,你還是改用參數會比較好。

    https://msdn.microsoft.com/en-us/library/bb243796%28v=office.12%29.aspx

    另外,最好是改用 ADO,DAO 已經停止更新很久了...


    強力監督SQL Injection問題!!

      • 小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
      • 雲端學堂Facebook: http://www.facebook.com/studyazure

    • 已標示為解答 David0629 2015年6月23日 上午 07:35
    2015年6月23日 上午 03:51
    版主

所有回覆

  • 如果都是相同的 SQL,你還是改用參數會比較好。

    https://msdn.microsoft.com/en-us/library/bb243796%28v=office.12%29.aspx

    另外,最好是改用 ADO,DAO 已經停止更新很久了...


    強力監督SQL Injection問題!!

      • 小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
      • 雲端學堂Facebook: http://www.facebook.com/studyazure

    • 已標示為解答 David0629 2015年6月23日 上午 07:35
    2015年6月23日 上午 03:51
    版主
  • 您可以利用UpdateBatch功能
    2015年6月23日 上午 06:58
  • 多謝指教

    請問如果是按照建議的方式,是否有資料的上限

    假設累積起來已經有十萬筆的紀錄

    然後才Execute

    2015年6月23日 上午 07:40
  • http://www.mrexcel.com/forum/excel-questions/110166-insert-multiple-records-using-ado.html

    強力監督SQL Injection問題!!

      • 小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
      • 雲端學堂Facebook: http://www.facebook.com/studyazure

    2015年6月23日 上午 08:34
    版主
  • Access 不支援用分號分隔的多行命令。

    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    2015年6月23日 下午 03:00