Andrzej Graczyk

Andrzej Graczyk Specjalista Analiz
Sprzedaży,
Wielkopolski Bank
Spółdzielczy

Temat: Problem z typem danych

Witam,
Zaciągam dane z tabeli Excela do Accessa za pomocą kodu (ADO):

p.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & link & ";Extended Properties=""Excel 12.0 macro;HDR=Yes"";"
r.Open "Select * from " & sheet, p, adOpenKeyset, adLockReadOnly

Dim q As New ADODB.Recordset
Set q = New ADODB.Recordset
q.Open "[Tabela5]", CurrentProject.Connection, adOpenDynamic, adLockOptimistic
wiersz = 0

With q
r.MoveFirst

Do Until r.EOF
.AddNew
wiersz = wiersz + 1
.Fields("id").Value = wiersz
.Fields("miesiąc").Value = r.Fields("miesiąc").Value
.Fields("budżet").Value = r.Fields("budżet").Value
.Update

r.MoveNext
Loop
End With

r.Close
Set r = Nothing
p.Close
Set p = Nothing

Problem polega na tym, że nie wszystkie dane chcą się zaciągnąć. W polu "budżet" w Excelu pojawiają się liczby ale również tekst (np. "Szczecin: 100"). Pole w Access, które ma zaciągać dane z tej kolumny ma typ "Krótki tekst" i kod ma problem z takimi danymi. Próbowałem już ominąć problem i najpierw odczytać typ danych w Excelu (czy jest to liczba) i dopiero przypisać odpowiednią wartość do Accessa ale nic z tego. Wyskakuje komunukat "Nie można zarejestrować zmian...".

Jeśli ktoś spotkał się z takim problemem prośba o podpowiedź,

Pzdr,
Sławomir Broda

Sławomir Broda VBA, Excel, Access,
SAP i wszystko
związane z
automatyzac...

Temat: Problem z typem danych

Może głupie (choć MS słynie z głupich obejść), ale załaduj najpierw wartość do zmiennej tekstowej, a dopiero potem zmienną tekstową do rekordsetu z accessa. Ewentualnie Cstr zaaplikuj.Ten post został edytowany przez Autora dnia 15.07.15 o godzinie 23:29



Wyślij zaproszenie do