【问题标题】:Adding new record with acNewRec and dbs.Execute使用 acNewRec 和 dbs.Execute 添加新记录
【发布时间】:2016-01-15 22:19:24
【问题描述】:

我在 MS Access VBA 中遇到了问题。

我正在尝试向表中添加一条新记录,同时向另一个表中添加额外的字段。

这是我正在使用的 vba 代码的一部分。

'Save the match to the table
DoCmd.GoToRecord , , acNewRec

'Step from 1 to the ResultValue
For LCounter = 1 To ResultHomeTeam.Value

Select Case LCounter
    Case 1
        dbs.Execute " INSERT INTO tblMatchPlayer " _
            & "(MatchID, PlayerID, SubstituteID, PositionID, Surname, ScoreTime, RedCards, YellowCards, Substitude, Penalty, OwnGoal, Assist) VALUES " _
            & "(" & Me.MatchID & ", '', '', '', '" & Me.cmScoreName1 & "', " & Me.tbScoreTime1 & ", '', '', '', " & Me.cbPenalty1 & ", " & Me.cbOwnGoal1 & ", '" & Me.cmAssist1 & "');"

但这不起作用,如果我只使用 dbs.Execute 它会将值写入正确的表,但不会将匹配详细信息写入匹配表

我是这样的

表格的第一部分是比赛详情 日期 对手 得分主队 得分队 那应该由 acNewRec 保存

表格的第二部分是得分的球员详细信息 选手姓名 计分时间 自己的目标 协助

必须由 dbs.execute 保存

不,我有两个按钮,一个用于保存比赛详细信息,一个用于保存球员详细信息。 但是我希望有一个按钮来保存所有内容,但是当我尝试将 acNewRec 和 dbs.Execute 结合使用时,它不起作用。

问题是我必须先保存比赛详细信息才能保存球员详细信息,因为球员详细信息必须有 MatchID。

谁能帮帮我?

致以诚挚的问候, 帕特里克

【问题讨论】:

  • 你的问题很混乱。但是要保存当前记录(并保留它),请使用DoCmd.RunCommand acCmdSaveRecord,而不是DoCmd.GoToRecord , , acNewRec
  • 抱歉这个令人困惑的问题。感谢我更换线路的解决方案,现在它可以工作了。谢谢

标签: vba ms-access


【解决方案1】:

问题部分是表单数据的第一次保存。

要保存当前记录(并保留在上面),请使用DoCmd.RunCommand acCmdSaveRecord,而不是DoCmd.GoToRecord , , acNewRec

后者确实会保存,但会转到表单上的一个新的空记录,因此您不能使用之前输入的值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-06
    相关资源
    最近更新 更多