AW: VBA+SQL
02.02.2023 07:15:37
Peter
Hallo Yal,
ich setz mal hier den Code rein:
Sub btn_StatusSetzen_Klicken()
Dim db_Status As Boolean
Const adOpenForwardOnly As Long = 0
'Const adLockReadOnly As Long = 1
Const adCmdText As Long = 1
Dim db As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim sConnect As String
Dim anzahlDS As Integer
Dim sSQL As String
Dim AuftragNr As Integer
Dim RechnungsNr As Integer
'Dim sSQLr As String
Dim filialeKurz
Dim diag As Object
Dim i As Integer
Set diag = DialogSheets("ReklaDialog")
If db_Status = False Then
'sSQL = "SELECT KURZNAME FROM sani97.dbo.Filiale Order By FilialeNr "
sSQL = "SELECT * FROM sani97.dbo.AuftragStatusZuordnung, Rechnungsposition" 'where 'AuftragNr' = 'RechnungNr'" '* from AuftragStatusZuordnung, Rechnungsposition
'AuftragNr, Vorgangnr anstatt *
'sSQLr = "SELECT RechnungsNr FROM sani97.dbo.Rechnungsposition"
sConnect = "DSN=sani97;" & _
"UID=sani_user;" & _
"PWD=sani97;" & _
"IFSN=sani97sql;" & _
"DB=sani97;" & _
"applicationname=REKLA-EXCEL"
'On Error GoTo Login_Error
db.Open sConnect
MsgBox sConnect
db_Status = True
'Erzeugen des Recordsets mit Schreibrechten
MsgBox sSQL
rs.Open sSQL, sConnect, adOpenUnspecified, adLockOptimistic, adCmdText
'MsgBox sSQLr
' rs.Open sSQLr, sConnect, adOpenUnspecified, adLockOptimistic, adCmdText
'adOpenKeyset
With rs
' .MoveFirst
' .Find Criteria:=KriteriumAngeben, SearchDirection:=adSearchForward
If .Fields("RechnungNr") = True Then
MsgBox "Ist vorhanden"
Else
If .Fields("AuftragNr") = True Then
MsgBox "Ist vorhanden"
End If
End If
' .Find Criteria:="AuftragNr='Zahl'", SearchDirection:=adSearchForward
' If .EOF = True Then
' MsgBox "Kein passender Datensatz gefunden"
' Else
' .Fields(Spaltenname).Value = "Gewünschten Wert eintragen"
' .Fields("AuftragNr").Value = "Gewünschten Wert eintragen"
' End If
' .Close 'schließt das Recordset
End With
' 'Überprüfung ob Daten zurückgeliefert wurden
' If Not rs.EOF And rs.RecordCount > 0 Then
'
' filialeKurz = rs.GetRows
' anzahlDS = rs.RecordCount
'
' 'MsgBox "Anzahl an Datensätzen = " & anzahlDS
'
' With diag.DropDowns("ddn_auswahlFiliale")
' .ListFillRange = anzahlDS - 1
' .DropDownLines = 20
' For i = 0 To anzahlDS - 1
' .AddItem CStr(filialeKurz(0, i))
' 'ThisWorkbook.DialogSheets("ReklaDialog").DropDowns(2).AddItem (filialeKurz(0, 1))
' Next
' End With
' Else
' MsgBox "Keine Daten zu der Vorgangsnummer in SaniVision gefunden.", vbCritical
' Exit Sub
rs.Close
db.Close
Set rs = Nothing
Set db = Nothing
db_Status = False
MsgBox "Es existiert bereits eine Datenbankverbindung zu SaniViison.", vbInformation
Exit Sub
Login_Error:
MsgBox "Error #: " & Err.Number & " : Es konnte keine Verbindung zu SaniVision hergestellt werden. Bitte wenden Sie sich an Ihren Administrator.", vbCritical
End If
End Sub