Excel - Warum hat die SQL-Anweisung select * ein Feld ausgelassen?


1

Ich habe eine Frage zur Verwendung von SQL in Excel. Ich habe eine Excel-Anwendung, die Daten aus einem Arbeitsblatt abruft und die Daten in ein anderes Arbeitsblatt importiert.

Anmeldeformular Bild hier. Beachten Sie das Eingabedatum-Feld.

Eine SQL-Anweisung mit Select * wurde zum Importieren der Daten verwendet. Wenn ich jedoch SQL ausführe, können alle Daten mit Ausnahme eines Datumsfelds importiert werden. Das Eingabeformular enthält 2 Datumsfelder, von denen jedoch nur eines importiert werden kann, während das andere vollständig leer ist. Ich überprüfe das Format auf beiden Arbeitsblättern und stelle sicher, dass sie gleich sind, aber immer noch nichts.

Bei der Ausführung ist das Eingabedatum leer.

Weiß jemand woran das liegt?

Als Referenz dient hier der Code, den ich verwende, um das Anmeldeformular mit der Anzeige in VBA zu verknüpfen.

Sub testsql(AB As String)

Dim rgPlaceOutput As Range    'first cell for the output of the query
Dim stSQLstring As String     'text of the cell containing the SQL statement
Dim rg As String, SQL As String

If AB = "1st" Then
stSQLstring = ActiveWorkbook.Sheets("Inner Workings").Range("B2").Text
Set rgPlaceOutput = ActiveWorkbook.Sheets("1st Summary").Range("A2")
End If

QueryWorksheet stSQLstring, rgPlaceOutput, ThisWorkbook.FullName, AB
End Sub

Der SQL-Code wird in mein Excel-Arbeitsblatt geschrieben, wie in meinem zweiten Screenshot gezeigt. Der VBA holt sich nur den Code aus der von mir angegebenen Zelle. Der SQL-Code lautet:

select * from EntryTable 

1
Sie müssen Ihr Tabellenschema und Ihre Spaltendefinitionen anzeigen, die Exportmethode offenlegen und ich bin mir sicher, dass Sie mehr als wahrscheinlich weitere Details benötigen, um Hilfe zu diesem Problem zu erhalten. Auf dieses von Ihnen erläuterte Problem bin ich nicht gestoßen aber vielleicht hat jemand anderes; Andernfalls müssen Sie weitere Details bearbeiten und offenlegen, z. B. wie Sie exportieren, was Sie sehen, wenn Sie aus SQL SSMS oder MySQL WB auswählen usw., die Datentypen in Ihrer Tabelle ebenfalls, und ich bin sicher, andere Details, aber das ist schnell was mir schnell einfällt.
Pimp Juice IT

1
Bitte posten Sie Ihr eigentliches Sub nicht, sondern ändern Sie es, um ein minimales Funktionsbeispiel zu erhalten: Entfernen Sie alle Elemente, die nicht mit dem damit zusammenhängenden Problem abs include zusammenhängen (z. B. fehlt in Ihrem Code ein SQL-Ausdruck).
Máté Juhász,

Ich stelle mir vor, das hat etwas damit zu tun, dass die anderen Variablen gleich sind. Ihr Projekt Nr., Die Nr., Beschreibung und Eingabedatum sind für das letzte Feld und das fehlende Feld gleich. Ich würde versuchen, jedes einzeln manuell zu ändern, um festzustellen, ob dies ein Fehler in Ihrem SQL ist.
Kevin Anthony Oppegaard Rose

Die Die-Nr., Die Beschreibung und das Eingabedatum werden alle über Vlookup basierend auf der Projekt-Nr. Abgerufen. Als ich die Formel entfernt und das Eingabedatum mit einer zufälligen Zeichenfolge eingegeben habe, kann es importiert werden. Aber wenn ich ein Datum eingebe, wird es nicht importiert. Warum geschieht dies speziell für das Eintrittsdatum und nicht für das normale Datum? Auch ich habe gestern angefangen an diesem Programm zu arbeiten und diese Ausgabe erschien erst heute. Ich hatte ursprünglich keine Probleme damit und kann mich nicht erinnern, den Code manipuliert zu haben.
hjh93
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.