वीबीए अंतिम डालने आईडी कैसे खोजें? - mysql, एक्सेल, वीबीए, lastinsertid

मेरे पास यह कोड है:

With shtControleblad
Dim strsql_basis As String
strsql_basis = "INSERT INTO is_calculatie (offerte_id) VALUES ("" & Sheets("controleblad").Range("D1").Value & "")"

rs.Open strsql_basis, oConn, adOpenDynamic, adLockOptimistic

Dim last_id As String
last_id = "select last_insert_id()"
End With

स्ट्रिंग last_id भरा नहीं है। गलत क्या है? मुझे te last_insert_id खोजने की ज़रूरत है, इसलिए मैं इसे किसी अन्य क्वेरी में उपयोग कर सकता हूं।

उत्तर:

उत्तर № 1 के लिए 1

आपको जोड़ना है rs.movelast रिकॉर्डसेट खोलने के बाद, उसे मदद करनी चाहिए


उत्तर № 2 के लिए 1
last_id = "select last_insert_id()"

आपने एसक्यूएल स्टेटमेंट को निष्पादित करने के लिए सेट किया है, लेकिन है इसे निष्पादित नहीं किया
कॉल rs.Open इसके बजाय उपरोक्त कथन के साथ "last_insert_id` प्राप्त करने के लिए।

यदि MySQL एकल पंक्ति पर एकाधिक एसक्यूएल स्टेटमेंट का समर्थन करता है, तो आप कर सकते हैं

strsql_basis = "INSERT INTO is_calculatie (offerte_id)
VALUES ("" & Sheets("controleblad").Range("D1").Value & "")
; select last_insert_id()"

rs.Open strsql_basis, oConn, adOpenDynamic, adLockOptimistic

संबंधित सवाल
सबसे लोकप्रिय