2016-03-21 20 views
0

Bir Excel dosyasından veri almak için aşağıdaki kodu kullanıyorum.docmd.transferspreadsheet Veri Türü yanlış atanan

Private Sub cmdOriginal_Click() 

Dim fDialog As Office.FileDialog 
Dim varFile As Variant 

Set fDialog = Application.FileDialog(msoFileDialogFilePicker) 

With fDialog 

    .AllowMultiSelect = False 
    .Title = "Please select a file" 
    .Filters.Clear 
    .Filters.Add "Excel Files", "*.XLSX" 
    .Filters.Add "All Files", "*.*" 

If .Show = True Then 

For Each varFile In .SelectedItems 

DoCmd.TransferSpreadsheet acImport, 10, "OriginalData", varFile, True, "" 
Beep 
MsgBox "Import Complete!", vbExclamation, "" 

Next 
Else 
    MsgBox "You clicked Cancel in the file dialog box." 
End If 

End With 

End Sub 

Ancak bazı durumlarda bunun yanlış bir alanın numarası için veri türünü ayarlar bulma yaşıyorum, çoğunlukla iyi çalışır. Bu, içe aktarılan veriler aslında hem metin hem de sayı içerdiğinden, içe aktarma hataları neden olur. Tabloyu önceden oluşturmak bir seçenek değildir çünkü aldığım her dosya için alan adları farklıdır.

Bunu nasıl geçebileceğime dair herhangi bir öneriniz için teşekkür ederiz.

Selamlar, Adam

cevap

2

Erişim veri türü ne olması gerektiği konusunda en iyi tahmin olduğunu yapar. Eski bir numara, Excel dosyasında başlıkların altına kukla bir satır eklemektir. Rahatsız edici sütunlarda, ihtiyacınız olan veri türüne bir örnek koydu, böylece bir string için "abd123" gibi bir şey koydu. Bunu el ile yapmak istemiyorsanız, Excel'de veya Access'in kendisinden kolaylıkla otomatikleştirilebilir (bir Excel uygulaması nesnesi oluşturun, dosyayı açın, kodunuzu yüklemeden önce & ayarını kaydedin). Daha sonra, bu satırları tablodan, kukla dizeyi bir ölçüt olarak içeren bir silme sorgusuyla silebilirsiniz. Bu yardımcı olur umarım. Kullanabileceğin

+0

Cevabınız için teşekkürler, bunu deneyeceğim –

1

iki yöntem:

  1. Elle ihtiyaçlarınıza, tabloyu içe ve alanlar veri türü ve diğer özelliklerini değiştirmek. Daha sonra, kod içinde, yeni verileri içe aktarmadan önce tablo verilerini silebilirsiniz. Daha fazla süreç için, sisteminizde veriye ihtiyaç duyduğunuzda bu daha iyidir.
  2. Excel'e bağlantı verin ve bir sorgulama yapın, alanları istenen alan veri türlerine ve adlarına dökün. Bu seçenek, veriler dönüştürülemiyorsa ancak veri Excel'de kalıyorsa (bir hatayı çağırır) bildirmenizi sağlar.