Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Gemeinsame Nutzung einer DB

Empfohlene Antworten

Veröffentlicht

ich möchte für 4 Leute ein Vb Programmm schreiben, Erfassung und ausgeben von daten(Access),was wäre am schlausten, alle 4 befinden sich in einem Netzwerk, der Rechner, in dem ich das Programm entwickele ist auch im Netz und kann auch als Lagerort der Datenbank sein,jeder soll von m ir eine Setup programm davon bekommen, also was soll ich machen wie soll die verbindungsart sein damit alle auf die Datenbank(Rechner 1)zugreifen und bearbeiten, meine Verbindungsart ist wie folgt:

DBPfad = App.Path & "\Gesamt.mdb"

PW = ""

Connect = "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=" & PW & ";Persist Security Info=False;Data Source=" & DBPfad & ";Mode=Read|Write"

Originally posted by Amin

ich möchte für 4 Leute ein Vb Programmm schreiben, Erfassung und ausgeben von daten(Access),was wäre am schlausten, alle 4 befinden sich in einem Netzwerk, der Rechner, in dem ich das Programm entwickele ist auch im Netz und kann auch als Lagerort der Datenbank sein,jeder soll von m ir eine Setup programm davon bekommen, also was soll ich machen wie soll die verbindungsart sein damit alle auf die Datenbank(Rechner 1)zugreifen und bearbeiten, meine Verbindungsart ist wie folgt:

DBPfad = App.Path & "\Gesamt.mdb"

PW = ""

Connect = "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=" & PW & ";Persist Security Info=False;Data Source=" & DBPfad & ";Mode=Read|Write"

Vorsicht. Access datenbank ist eine Desktopdatenbank. Ist also für Multibenutzer-Systeme nicht optimiert. Die gleichzeitige Benutzung von ca. 12 Nutzer haben bei mir Erfahrungsgemäß jedoch keine Probleme gemacht. Wichtig ist nur eine relgelmäßige Datensicherung. am besten täglich. So kann nichts mehr schief gehen.

Nutze ADO und versuch möglichst kurzzeitige Datenbankverbindung zu haben, in dem du die Daten holst und die verbindung zur Datenbank trennst.

Also mit Datenbank nur dann connecten, wenn du auch was von der Datenbank willst. Das macht nicht nur deine Applikation schneller, sondern entlastet die access-file sehr. Also eine permanente Verbindung zur Datenbank auf jedenfall vermeiden, was wiederum bei einem Ein-User-System sinnvoller wäre... (kommt aber auch auf anwendungsfall an..) Hast du z. b. Importvorgänge wo du dann tausende von Daten importieren willst. bzw. einlesen willst, dann ist es sinnvoller nicht verbindungslos zu arbeiten. (Kommt aber wie gesagt auf Anwendugnsfall an...)

gruss

blear

Nutze ADO und versuch möglichst kurzzeitige Datenbankverbindung zu haben, in dem du die Daten holst und die verbindung zur Datenbank trennst.

der Sinn dieses Satzes habe ich verstanden aber wie das geht weisse ich nicht es ist mein erste Programm das ich entwickele, ich wäre dir dankbar wenn du mir vielleicht zeigst wie die Zeile aussehen um die Verbindung kurzzeitig zu zu ermöglichen

Hi Leute,

sgat mal warum programmiert ihr denn alle in VBA ist das so im Kommen??

*an dn Kopf fass, das nicht begreifen kann*

Gruß an euch da drausen

/OT

Originally posted by KleinerChaot

Hi Leute,

sgat mal warum programmiert ihr denn alle in VBA ist das so im Kommen?? ...

Das einzige Vorkommen der Sequenz "VBA" auf dieser Seite ist in Deinem Beitrag.

/OT

Originally posted by Amin

Nutze ADO und versuch möglichst kurzzeitige Datenbankverbindung zu haben, in dem du die Daten holst und die verbindung zur Datenbank trennst.

der Sinn dieses Satzes habe ich verstanden aber wie das geht weisse ich nicht es ist mein erste Programm das ich entwickele, ich wäre dir dankbar wenn du mir vielleicht zeigst wie die Zeile aussehen um die Verbindung kurzzeitig zu zu ermöglichen

Kapselung würde dir hier ungemein helfen.

Schreib eine Funktion womit du die Verbindung aufbaust.. connect()

Schreib eine Funktion womit du die Verbindung trennst. disconnect()

schreib eine Funktion womit du ein Rrecordset erzeugen kannst. CreateRecordset(Sql as string) as Adodb.REcordset

Dein Recordset_object hat ein Property Namens AcitveConnection.

Set rs.ActiveConnection = nothing

und shcon ist dein Rs verbindungslos.

Voraussetzung dafür ist, wie du dein RS öffnest.. BatchOptimistisch solltest du dein Recordset öffnen. Sonst geht das nicht.



Friend Function fCreateRS(sql As String, Optional myCursorLocation As ADODB.CursorLocationEnum = adUseClient, _
Optional myLockType As ADODB.LockTypeEnum = adLockOptimistic, _
Optional myCursorType As ADODB.CursorTypeEnum = adOpenKeyset) As ADODB.Recordset
On Local Error GoTo ErrHandler
Dim myrs As New ADODB.Recordset
fConnect
myrs.CursorLocation = myCursorLocation
myrs.Open sql, poConn, myCursorType, myLockType
If Err Then Set myrs = Nothing
Set fCreateRS = myrs
Exit Function
ErrHandler:
Resume Next
End Function

Friend Function fExec(sql As String) As Integer
On Local Error GoTo ErrHandler
Dim myInt As String
fConnect
poConn.Execute sql, myInt
If Err Then myInt = -1
fExec = myInt
Exit Function
ErrHandler:
Resume Next
End Function

Friend Function fConnect() As Boolean
On Local Error GoTo ErrHandler
Dim ok As Boolean
ok = True
If poConn Is Nothing Then Set poConn = New ADODB.Connection

If poConn.State <> 1 Then
poConn.Open pConnString

If Err Or poConn.State = 0 Then
RaiseEvent FaildToConnect
pShowDialog
'fConnect
End If
End If
ok = Err = 0
fConnect = ok
Exit Function
ErrHandler:
Resume Next
End Function

[/PHP]

Achte bitte darauf, dass es sich in diesem Beispiel nur um eine Kapselung handelt. Die Trennung der zwei Objekte Connection und Recordset musst du dann schon selbst machen..

Desweiteren fehlt hier die Disconnect-Methode..

du musst dann einfach die Close Methode des Con-Objektes aufrufen..

gruss

blear

Originally posted by KleinerChaot

Hi Leute,

sgat mal warum programmiert ihr denn alle in VBA ist das so im Kommen??

*an dn Kopf fass, das nicht begreifen kann*

Gruß an euch da drausen

VBA?

@ Blear

Kann ja morgen mal mein Connectmodul posten, nur mal so als Gegenüberstellung.

Originally posted by LoneGunman

@ Blear

Kann ja morgen mal mein Connectmodul posten, nur mal so als Gegenüberstellung.

jö. find ich gut.

bis dann

blear

Heute gehts leider schlecht, weil ich krank bin, morgen.

Option Explicit

Private conn1 As Connection

Public rs1 As Recordset

Public rs2 As Recordset

Public sql1 As New Command

Private fehler As Long

Public Function connect_db(ByVal datenbank As String, ByVal user As String, password As String) As Boolean

On Error Resume Next

'Anmeldung an der Datenbank, bei Fehler meldet die Funktion "False", sonst "True"

'Wird einmal beim Start des Hauptprogramms aufgerufen

Set conn1 = New Connection

conn1.CursorLocation = adUseClient

conn1.Open "Data Source=" & datenbank & "; User ID=" & user & "; PWD=" & password

'Setzen der SQL-Parameter, wird nur einmal gemacht

sql1.ActiveConnection = conn1

sql1.CommandType = adCmdText

fehler = Err.Number

On Error GoTo 0

If fehler = 0 Then connect_db = True Else connect_db = False

End Function

Public Sub disconnect_db()

On Error Resume Next

'Verbindung schließen

conn1.Close

On Error GoTo 0

End Sub

Public Sub kill_db_objects()

'Objekte auf Nothing setzen, wird beim Beenden des Hauptprogramms aufgerufen

Set conn1 = Nothing

Set rs1 = Nothing

Set rs2 = Nothing

Set sql1 = Nothing

End Sub

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.