我是开发工作的新手,我正在开发一个带有上传宏按钮的Excel工作表,允许用户将他们的数据上传(插入语句)到我们的SQL Server数据库中。
只有7个用户。如果多次单击上传按钮,我将如何限制上传到我们数据库的数量?
我们正努力让所有7位用户将其提交给负责人,该人员会点击上传但只是想尽量减少用户错误。任何帮助非常感谢。
答案 0 :(得分:0)
通过正确构建解决方案,有多种方法可以实现这一目标。 最明显的方法是设计数据库模式,使设计不允许重复。
主键应该是你的朋友。确保正确定义了有问题的表上的主键。
因此,即使所有7个用户尝试插入任何次数,也可以减轻重复插入的问题。
答案 1 :(得分:0)
将每个用户的上传次数存储在隐藏的工作表中,并在VBA中使用类似的内容:
Sub Upload()
Dim uploadWS As Worksheet
Dim userRow As Range
Const MAX_UPLOADS As Byte = 3 '// Change to whatever you want
Set uploadWS = Sheets("Upload Data")
'// lets assume userID in column A and number of uploads in column B
Set userRow = uploadWS.Range("A:A").Find(Environ$("USERNAME"))
If userRow Is Nothing Then
With uploadWS.Range("A" & uploadWS.Rows.Count).End(xlUp).Offset(1, 0)
.Value = Environ$("USERNAME")
.Offset(0, 1).Value = 1
End With
'// Code for uploading here
Else
With userRow.Offset(0, 1)
If .Value <= MAX_UPLOADS Then
.Value = .Value + 1
Else
MsgBox "You have exceeded max allowed uploads, please contact admin.", vbOkOnly + vbCritical, "Error"
Exit Sub
End If
End With
'// Code for uploading here
End If
End Sub