Alles als Text verknüpfen

Hallo,

folgendes Problem: ich habe eine Excel-Tabelle, die ich in Access verknüpfen müsste, damit darin gesucht werden kann. Beim Verknüpfen werden aber leider einige Felder als Zahlen importiert, die keine sind (wahrscheinlich weil dieses Feld in den ersten paar Datensätzen eine Zahl darstellt.

Wie kann ich Excel sagen, dass er alles als Text importieren soll? Alternativ kann ich das auch gerne per VBA machen, wenn es darüber möglich ist.

Danke schonmal.

Gruss, Omar Abo-Namous

Hallo,

folgendes Problem: ich habe eine Excel-Tabelle, die ich in
Access verknüpfen müsste, damit darin gesucht werden kann.
Beim Verknüpfen werden aber leider einige Felder als Zahlen
importiert, die keine sind (wahrscheinlich weil dieses Feld in
den ersten paar Datensätzen eine Zahl darstellt.

Verknüpfen oder Importieren?

Beim Verknüpfen macht er es bei mir gerade andersherum: Sobald irgendwo in der Spalte Text drin steht, macht er ein Textfeld daraus und kann Zahlen nicht anzeigen.

Importieren als Text klappt, wenn vorher die ganze Spalte in Excel als Text formatiert wurde.

Gruß

Steffen

Hallo,

zur Not in die erste Datenzeile Dummy-Text eingeben und nach Import (Verknüpfen?) wieder löschen. Dann ist Access gezwungen, alles als Text zu interpretieren.

ujk

Danke euch beiden, ich hatte schon beides probiert ohne Erfolg. Nun habe ich aber den tip bei microsoft gefunden:
http://support.microsoft.com/default.aspx?scid=kb%3B…

Gruss, Omar Abo-Namous

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Omar,

das kann man aber auch aus Access direkt machen, wenn man wie in meinem Fall keinen Einfluss auf die EXCEL-Sheets hat, die von iregndwo anders herkommen. Hier ein Auszug aus meiner Routine:

Public Function FormatEXCELCellToText()
On Error GoTo HandleErr

Dim ExcelApp As Object
Dim NewMap As Object
Dim xlsRange As Object
Dim wrkBook As Object

Dim lLastRow As Long
Dim lastCellName As String

’ Create instance of EXCEL-Obj

Set ExcelApp = CreateObject(„excel.application“)

ExcelApp.Visible = False

’ Load Worksheet in XLS-File, here I know the name of the worksheet
Set NewMap = ExcelApp.Workbooks.Open(„XLSFileName“)
ExcelApp.Worksheets(„WorksheetName“).Activate

'Determine last row
lLastRow = ExcelApp.ActiveSheet.Cells.SpecialCells(11).Row

’ Select one complete row and set format to text… works with other formats also
Set xlsRange = ExcelApp.Range(„A3:A“ & lLastRow)
xlsRange.Select
xlsRange.Activate
xlsRange.NumberFormat = „@“

’ Next row
Set xlsRange = ExcelApp.Range(„B3:B“ & lLastRow)
xlsRange.Select
xlsRange.Activate
xlsRange.NumberFormat = „@“
’ =========================================
’ Und so weiter fuer jede gewuenschte Spalte
’ =========================================

’ Close the workbook and the EXCEL-Instance
For Each wrkBook In ExcelApp.Workbooks
wrkBook.Close (True)
Next wrkBook
ExcelApp.Quit
Set ExcelApp = Nothing
DoEvents

ExitHere:
Exit Function

HandleErr:
Select Case Err.Number
Case Else
MsgBox "Error " & Err.Number & ": " & Err.Description, vbCritical, „General.FormatEXCELCellToText“
End Select
Resume ExitHere
Resume Next
End Function

Tschau and hope this helps

Peter

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

1 Like

Danke.

Nun habe ich die Excel-Makro-Variante gewählt, aber das andere ist auch sehr interessant.

Gruss, Omar Abo-Namous