对于i =参数INSERT多个值到表

时间:2016-01-23 17:25:54

标签: vba access-vba

下午好,

为了找到问题的解决方案,我已经搜索了我的但是关闭了。

我正在尝试访问我的数据库中插入多行,但是这些行的值不同。

例如: 我有两个人进球,所以经理会把两个得分的球员放进去等等。

我正在使用的方法现在可以使用,但它最多可以做10次。

这就是我现在所拥有的。

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 & "');"

直到案例10

我试图做的是制作循环。

If Location.Value = "Thuis" Then InsertScore = ResultHomeTeam.Value Else InsertScore = ResultAwayTeam.Value

For i = 1 To InsertScore
   QueryInsert = " INSERT INTO tblMatchPlayer " _
    & "(MatchID, PlayerID, SubstituteID, PositionID, Surname, ScoreTime, RedCards, YellowCards, Substitude, Penalty, OwnGoal, Assist) VALUES " _
    & "(" & Me.MatchID & ", '', '', '', '" & Me.cmScoreName & i & "', " & Me.tbScoreTime & i & ", '', '', '', " & Me.cbPenalty & i & ", " & Me.cbOwnGoal & i & ", '" & Me.cmAssist & i & "');"
   Debug.Print QueryInsert
   dbs.Execute QueryInsert
Next

我的想法,这会做同样的事情,但只代替一个选择案例我使用For循环,“&”作为1个玩家得分或2个玩家或10个玩家时使用的值

但这不起作用。

关于如何在不使用10个案例的情况下完成这项工作的任何想法?

亲切的问候,

帕特里克

1 个答案:

答案 0 :(得分:1)

正如HansUp所写,除了解决表单控件的常规方法:Me!myTextBox1之外,您还可以使用以下语法:Me("myTextBox1"),并且可以使用此语法进行字符串连接和循环:{{ 1}}。

另一件事:您的INSERT语句容易受到SQL注入或至少错误的影响,想象一个姓Me("myTextBox" & i)

我建议使用DAO更安全,更易读的变体:

O'Neil