通过Excel VBA在Excel记录集中插入一行

xnewbie

我试图在记录集的最后一行插入一些值,在这种情况下,这是一个用作我的数据库的Excel文件。我下面的代码可将文本框的值插入excel记录集的最后一行。但是,它没有在插入值的地方创建新表行。

Sub CreaterRow()
    Dim strFile As String
    Dim strConnect As String
    Dim strSQL As String
    Dim lngCount As Long
    Dim cnn As New ADODB.Connection
    Dim rst As New ADODB.Recordset
    strFile = "C:\Excel\Test.xlsx"
    strConnect = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strFile & _
    ";Extended Properties=""Excel 12.0 Xml;HDR=YES"";"
    cnn.Open ConnectionString:=strConnect
    strSQL = "SELECT [ID] FROM [Sheet1$]"
    rst.Open Source:=strSQL, ActiveConnection:=cnn, CursorType:=adOpenForwardOnly, Options:=adCmdText

    With rst
        .AddNew
           .Fields("ID").Value = tbx_ID.Value 'Inserting this in the recordset did not create a new row
         .Update
    End with 

    rst.Close
    cnn.Close
End Sub

该表如何自动创建一个新行,其中将包含插入到lastrow中的值?谢谢。

蒂姆·威廉姆斯

这对我有用。您需要具有正确的光标和锁定类型。

Sub CreaterRow()
    Dim strFile As String
    Dim strConnect As String
    Dim strSQL As String
    Dim cnn As New ADODB.Connection
    Dim rst As New ADODB.Recordset

    strFile = ThisWorkbook.Path & "\Data.xlsx"

    strConnect = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=""" & strFile & _
                """;Extended Properties=""Excel 12.0 Xml;HDR=YES"";"
    cnn.Open ConnectionString:=strConnect
    strSQL = "SELECT [ID] FROM [Sheet1$]"

    rst.Open strSQL, cnn, adOpenKeyset, adLockOptimistic

    With rst
        .AddNew
        .Fields("ID").Value = "ID00020"
        .Update
    End With

    rst.Close
    cnn.Close
End Sub

编辑:如果您要查询一个表/列表对象中的数据,那么追加记录将不会调整列表的大小以包括添加的记录。请参阅:ADO:Excel:是否可以在表名上打开记录集?

EDIT2:如果您使用命名范围而不是ListObject,则可以按名称查询它(而不是使用工作表名称),并且在插入新行时范围调整。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

通过 VBA 插入 Excel 公式

来自分类Dev

Excel VBA-遍历记录集

来自分类Dev

VBA & Excel - 循环记录集

来自分类Dev

如何在Excel for Mac(2011)中通过键盘插入一行

来自分类Dev

下一行的 Excel VBA 公式

来自分类Dev

如何从adodb记录集Excel VBA中的一列中选择不同的值?

来自分类Dev

如何在Excel VBA中插入并拖动公式直到最后一行

来自分类Dev

Excel VBA 复制多行并根据按钮单击插入到下一行

来自分类Dev

如何通过VBA在Excel中插入文本

来自分类Dev

Excel VBA-插入表后在多个行上更新唯一记录

来自分类Dev

代码跳过记录集输入,ADODB Excel VBA

来自分类Dev

通过VBA / Excel提取HTML

来自分类Dev

Excel通过VBA编写公式

来自分类Dev

Excel背景通过VBA保存

来自分类Dev

通过VBA运行Excel公式

来自分类Dev

通过VBA编辑Excel JumpList

来自分类Dev

Laravel Excel通过视图

来自分类Dev

通过Excel导入数据

来自分类Dev

Excel VBA优化筛选范围的最后一行

来自分类Dev

如何知道最后一行填写VBA(Excel)?

来自分类Dev

使用VBA引用Excel中的另一行

来自分类Dev

Excel 2010 VBA仅影响范围的最后一行

来自分类Dev

Excel VBA的最后一行变量不计算

来自分类Dev

Excel VBA:用数组替换第一行

来自分类Dev

使用Excel VBA查找最后一行

来自分类Dev

Excel VBA优化筛选范围的最后一行

来自分类Dev

访问 VBA:获取 Excel 工作表的最后一行

来自分类Dev

使用一行 Excel VBA 删除工作表

来自分类Dev

下移到下一行过滤数据vba excel