Nutzerkreis einschränken - aber wie?!
08.02.2007 07:47:05
Till
ich bin gerade dabei ein kl. Tool zu schreiben, mit dem man aus dem lokalen Netzwerk Daten (im Txt-Format) im Hintergrund importieren kann und sich dann in einer Listbox auf einer Userform darstellen lässt.
Mir fiel dabei gerade auf, dass es evtl. zu Problemen kommt, wenn mehrere Nutzer gleichzeitig versuchen, auf die selben Datensätze zuzugreifen.
Jetzt würde ich also gerne eine Art Sperre einbauen, die bemerkt, wenn dieselbe Datei bereits von anderen Nutzern geöffnet ist, bzw. dieses erst gar nicht zulässt. Evtl. soll (falls möglich) ein weiterer Nutzer bereits daran gehindert werden sich in dem entsprechenden Netzwerkpfad aufzuhalten, wenn dort bereits ein anderer Nutzer aktiv ist!
Geht das? Wie macht man das? Hier mal die Abfrage, die für den Nutzer die Daten normalerweise einlesen lassen (Die echten Pfade hab ich dabei auf einem separaten, versteckten Sheet stehen):
Option Explicit
Private Const cPath As String = "\\172.16.3.3\archiv_video\Polling Data\" 'Konstante Pfadvorgabe
Sub Abfrage(ByVal SubFolder As String)
Dim strFile As String
Dim objName1_1 As Range
Dim rngF1_1 As Range
Dim rngK1_1 As Range
Dim rngUnion1_1 As Range
Dim MyWidth As Single, MyHeight As Single
Dim NumWide As Long
Dim iChtIx As Long, iChtCt As Long
Dim Zeile2 As Integer, MyList(2836, 8), r As Integer, wksListe As Worksheet
If Not ActiveWorkbook Is ThisWorkbook Then ActiveWorkbook.Close False
strFile = cPath & SubFolder & Format(ThisWorkbook.Sheets("Tabelle1").Range("a1"), "yyyymmdd") & "_0" & ".txt"
If Dir(strFile) = "" Then
MsgBox "Keine Messdaten zu diesem Datum vorhanden", vbInformation
Exit Sub
End If
On Error GoTo ErrExit
GetMoreSpeed
Workbooks.OpenText _
Filename:=strFile, _
DataType:=xlDelimited, _
Semicolon:=True, _
FieldInfo:=Array(Array(1, 1), _
Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1), _
Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1), Array(14, 1), Array(15 _
, 1), Array(16, 1), Array(17, 1), Array(18, 1), Array(19, 1), Array(20, 1), Array(21, 1), _
Array(22, 1), Array(23, 1), Array(24, 1)), DecimalSeparator:=".", _
ThousandsSeparator:=",", TrailingMinusNumbers:=True
' usw.
'.....
Dann noch der Button zur Abfrage:
Private Sub CommandButton9_Click()
If ComboBox2.ListIndex > 0 Then
ListBox1.Clear
Run "Abfrage", ComboBox2.List(ComboBox2.ListIndex, 1)
End If
End Sub
Hoffentlich ist das lösbar!
Danke schon mal!
Gruß Till