2016-04-28 10 views
0

Kürzlich wurde ich gebeten, auf eine Einzelbenutzer-VB6-Anwendung, die auf Access-Datenbank zugreift. Die Datenbank befindet sich im selben Verzeichnis wie die EXE-Datei. Jetzt ist es erforderlich, dass mehrere (etwa 5 weitere) Benutzer gleichzeitig auf diese Anwendung zugreifen müssen. Also, sollte ich die Datenbank an einem Netzwerkstandort platzieren und den Verbindungscode in der Anwendung ändern, damit die Anwendung von verschiedenen Benutzerkonsolen darauf zugreifen kann? Ich möchte, dass die Datenbank vollständig von den Benutzern entfernt ist und sie keine Ahnung haben, wo die Datenbank ist. Wie macht man das?Access und VB6-Anwendung - von Single zu Multiuser

+0

Ein paar zusätzliche Elemente, sich mit zu beschäftigen - je nachdem, wie der Code liest und in die Datenbank schreibt, Sie in Streit Probleme stoßen könnte, die brauchen aufgelöst werden - wenn beispielsweise eine Tabelle oder ein anderes Objekt längere Zeit als schreibbar (gesperrt) geöffnet ist, erhalten andere Benutzer, die versuchen, es zu lesen oder zu schreiben, einen Fehler. Wenn die Benutzer WAN remote zur mdb-Datenbank sind, haben Sie wahrscheinlicher Timing-, Timeout- und Contention-Probleme - mit einem Access mdb sehen Sie eine viel bessere Leistung, um auf LAN (nicht WAN) zugreifen zu können. – MarkL

+0

Die Datenbank verbleibt im LAN. Kein WAN-Zugang. –

Antwort

1

Ich empfehle Ihnen, den Ordner auf dem Server mit einer versteckten Freigabe zu teilen, indem Sie das '$' Zeichen am Ende des Freigabenamens setzen und den Benutzern die notwendigen Rechte geben. und in der Verbindungszeichenfolge geben Sie Ihren Weg als:

strServeur = "IP of your server\name_of_your_shared_folder$" 
strDriver = "{SQL Server}" 'Driver pour l'accès à la database 
Set oConn = New ADODB.Connection 
oConn.Open "Driver=" & strDriver & ";" & _ 
"Server=" & strServeur & ";" & _ 
"Database=" & strDataBase & ";" & _ 
"Uid=" & paramCon.userBd & ";" & _ 
"Pwd=" & paramCon.passBd & ";" 
+0

Sicherheit durch Dunkelheit? Das ist ein Hack, der die Dinge vereinfacht, aber es wäre besser, eine mittlere Ebene hinzuzufügen. Oder der Weg des Höhlenmenschen: Benutze einfach ein Client/Server-DBMS anstelle von Jet (du benutzt nicht "MS Access", es sei denn, du automatisierst eine Instanz von Access - ein Gedanke, der mich zusammenzucken lässt). – Bob77