【问题标题】:Vb6 Record Updation ErrorVb6 记录更新错误
【发布时间】:2013-01-15 10:06:39
【问题描述】:

在vb6中,一个包含以下值和 here is the screenshot link for the sample values !的表单

我正在使用 Ms Access 2007,它包含一个名为“studentexamdetail”的表包含

    heading(Admno,Semester,Subjectcode,Regular_Arrear,Fee) 

我的疑问是当我点击上面表格中的“保存”按钮时(见截图),然后录取号码,学期,所有主题代码,regular_arrear(我们可以手动编写)和费用应该保存在“studentexamdetail”表中但是它仅在我使用此方法时存储第一个值!

    rs2.Open "select * from studentexamdetail", con, 1, 3
    Do Until rs2.EOF
    rs2.AddNew
    rs2!AdmnNo = admno.Caption
    rs2!semester = semester.Caption
    rs2!Subjectcode = rs.Fields("Subjectcode")
    rs2!Regular_Arrear = "Regular"
    rs2!Fee = rs.Fields("Fee")
    rs2.Update
    rs2.MoveNext
    MsgBox "Record Saved!"
    Loop

我应该进行哪些更改来存储所有值而不是仅存储第一个值? 我需要的是,如下所示:

    Admno Semester Subjectcode Regular_Arrear Fee
    1471     V       RMSC1        Regular     440
    1471     V       RMSC3        Regular     440
    1471     V       RMSC2        Regular     320

我只想像上面一样保存该表中的值!

【问题讨论】:

  • 这是什么 rs.Fields("Subjectcode") 你有什么错误吗?因此,您只能在数据库中添加一行,其值 1471 来自 admno.Caption 我正确吗?
  • 还有为什么需要循环?你可以使用 If not rs2.EOF then 而不是循环
  • 请参考stackoverflow上的链接[如何手动正确地将新记录添加到空记录集][1] [1]:stackoverflow.com/questions/2293933/…希望对您有所帮助。
  • 感谢 AshReva 的回复!你看过截图的朋友吗?在该图像中,您可以看到不同的值,但我想要上面提到的输出!我试过如果不是 rs2.Eof 并且它不工作的朋友! rs.("Subjectcode") 是该图像中“Subjectcode”字段名的值!
  • 查看我之前的帖子stackoverflow.com/questions/14302832/… 我希望它能解决混淆并检查页面底部的记录集“rs”的值

标签: mysql ms-access datagrid vb6


【解决方案1】:

代码在rs2 记录集的末尾添加一个新行。然后它调用.MoveNext,它将记录集定位在.EOF。所以Loop 条件就是True,这意味着它不会循环。

您似乎还有另一个记录集rs。也许那是你应该循环的那个而不是rs2

【讨论】:

  • rs.Open "SELECT subjectcode.Year1, subjectcode.Year2, subjectcode.Subjectcode, subjectcode.Subjectname, subjectcode.Theory_Practical, q.Fee FROM subjectcode INNER JOIN (SELECT fee.Year1, fee.Year2, 'Theory' As FeeType, fee.Theoryfee As Fee FROM fee UNION ALL SELECT fee.Year1, fee.Year2, 'Practical' As FeeType, feeble.Practicalfee As Fee FROM fee) AS q ON (subjectcode.Theory_Practical = q.FeeType) AND (subjectcode.Year2 = q.Year2) AND (subjectcode.Year1 = q.Year1)", con, 1, 3 这是“rs”记录集的值,您可以在我附加的屏幕截图中看到它的输出在前面
  • 查看我之前的帖子,我希望它能解决困惑stackoverflow.com/questions/14302832/…
【解决方案2】:

我已经通过将“rs2.movenext”替换为“rs.movenext”解决了这个问题,您可以在上面的评论中看到 rs 记录集的值,我刚刚放置了另一段代码“rs2.close”

   Do Until rs.EOF
   rs3.Open "select * from studentexamdetail", con, 1, 3
   rs3.AddNew
   rs3!AdmnNo = admno.Caption
   rs3!semester = semester.Caption
   rs3!Subjectcode = rs.Fields("Subjectcode")
   rs3!Regular_Arrear = "Regular"
   rs3!Fee = rs.Fields("Fee")
   rs3.Update
   rs3.Close
   rs.MoveNext
   Loop
   MsgBox "Record Saved!"

感谢上帝!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-27
    • 1970-01-01
    相关资源
    最近更新 更多