2016-05-23 25 views
1

我是開發新手,我正在開發一個帶有上傳宏按鈕的Excel工作表,它允許用戶將他們的數據上傳(插入語句)到我們的SQL Server數據庫中。如何跟蹤或限制多個上傳到SQL Server數據庫?

只有7個用戶。如果他們多次點擊上傳按鈕,我會如何限制上傳到我們的數據庫的數量?

我們正在嘗試讓全部7個用戶將其提交給負責人員,他會點擊上傳圖片,而只是想最大限度地減少用戶誤會。任何幫助非常感謝感謝。

回答

0

有多種方法可以通過正確構建解決方案來實現此目的。 最明顯的方法是設計數據庫模式,使得設計不允許重複。

主鍵應該是你的朋友在這裏。確保正在討論的表格上的主鍵已正確定義。

因此,即使所有7位用戶嘗試插入任意次數,也可以緩解重複插入的問題。

+0

感謝。有人告訴我把鑰匙分配給參考月,因爲每個月只能上傳7個。現在看看。 –

+0

如果你沒有直接的列作爲主鍵,你也可以嘗試分配複雜的主鍵。這些密鑰應該有助於確定什麼是重複的。所以你幾乎定義了你的關鍵規則,讓sql server引擎完成繁重的工作。 [鏈接](http://stackoverflow.com/questions/3922337/how-to-create-composite-primary-key-in-sql-server-2008) – user46743

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 
+2

感謝您抽出時間寫出來。我會嘗試。 –

相關問題