Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1472to1476
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

ADODB mit Variablen aus einer Public Function

ADODB mit Variablen aus einer Public Function
09.02.2016 20:25:32
Lutz
Guten Abend,
ich habe ein Formular erstellt, indem man 5 unterschiedliche Daten/Werte eintragen muss. Anschließend sollen diese Daten/Werte in eine "Datenbank" übertragen und abgespeichert werden. Die Datenbank ist in diesem Fall eine sehr große Excel-Tabelle, > 25mb. Die Daten sollen in die Datenbank bzw. Excelliste übertragen werden, ohne diese zu öffnen.
Mein Ansatz ist eine ADO die auch funktionsfähig ist. Allerdings müssen die Daten als text eingegeben werden.
Gerne würde ich Daten als Variable einer anderen Sub (public Function) in die ADO eingeben und anschließend überstellen.
Ist das mit einer ADODB möglich? Bei meinen Versuchen bekomme ich Fehlermeldungen.
Hier ein Auszug aus meiner Sub. Hier werden die 5 Daten über die Variable summeA(1, Wert1... _
Wert5) ermittelt.

Option Explicit
Public Function summeA(varTabelle1 As Variant, lngWert As Long) As Double
With Worksheets(varTabelle1)
summeA = Application.WorksheetFunction.SumIf(.Range("B2:B22"), lngWert, .Range("C2:C100")) _
_
_
_
End With
End Function
Sub TestIt()
Debug.Print summeA(1, Wert1)
Debug.Print summeA(1, Wert2)
End Sub

Die Variable summeA(1, Wert1), summeA(1, Wert2), ... werden von der ADODB übernommen und sollen _
in die Excel-Datenbank überstellt werden.

Public Sub ADO()
Dim objConnection As Object
Dim strConnection As String
Dim summeA As Integer
Dim strWorkbook As String, strWorksheet As String
strWorkbook = "C:\Users\xyz\Desktop\Datenbank.xlsx"
strWorksheet = "Tabelle1"
Set objConnection = CreateObject("ADODB.Connection")
strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & strWorkbook & ";" & _
"Extended Properties=""Excel 12.0;HDR=Yes;IMEX=0"""
Call objConnection.Open(strConnection)
Call objConnection.Execute("INSERT INTO [" & strWorksheet & "$]" & "(Wert1,Wert2,Wert3, _
Wert4,Wert5) VALUES (summeA(1,Wert1),'2','3','4','5')")
objConnection.Close
Set objConnection = Nothing
End Sub

Die Werte hinter VALUES, welche mit einem Appstroph versehen sind werden übergeben. Die Variable summeA(1,Wert1) erzwingt eine Fehlermeldung.

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ADODB mit Variablen aus einer Public Function
10.02.2016 14:54:58
Raphael
Hallo Lutz,
der Wert sollte vorher berechnet werden, damit das ganze funktioniert.
Versuchs mal so.
     Call objConnection.Execute("INSERT INTO [" & strWorksheet & "$]" & _
"(Wert1,Wert2,Wert3, Wert4,Wert5) VALUES (" & summeA(1, Wert1) & _
",'2','3','4','5')")
Gruess
Raphael

Variablen in Text
10.02.2016 14:56:12
Michael
Hi Lutz,
nachdem Du einen String übergibst, mußt Du die Variable und den Text außenrum mit & verbinden, z.B. so:
sub test
dim wert as long
wert=3
debug.print "Der Wert ist >" & wert & "
Für Dein Beispiel sollte es also so funktionieren:
Call objConnection.Execute("INSERT INTO [" & strWorksheet & "$]" & _
"(Wert1,Wert2,Wert3,Wert4,Wert5) VALUES ('" & summeA(1,Wert1) & "','2','3','4','5')")
Schöne Grüße,
Michael
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige