ID tematu: 68850
 |
sterować Excelem z Accesc |
Autor |
Wiadomość |
Jan Koc
Świeżak

Wersja: Win Office 2016
Posty: 1
|
Wysłany: 06-09-2020, 19:15 sterować Excelem z Accesc
|
|
|
Nie umiem tego ogarnąć
mam do Excela wpisać nowy wiersz (tu nr 40) skopiować wartości wraz z funkcjami z wiersza 4, wpisać nowe wartości i zamknąć
problem 1
jeśli Excel jest otwarty (w dowolnej instancji) to się to "krzaczy"
jeśli jest tylko otwarty "ten" Excel to nie zapisuje się
zapisuje się gdy jest wszystko zamknięte.
problem 2
gdy się zapisuje to na koniec nie zamyka się.
Żadne Quit nie działają, w menadżerze zadań wisi aktywny Excel i bruździ
tu są przykładowe dane, ale chodzi o metody, jak to ogarnąć ?????????????????????????????
Zadanie, pozycja AB zdefiniowane
i ja to chcę z Accesa zrobić !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
czyli mam tak zdefiniowaną procedurę
Kod: |
Dim xlsAppl As Excel.Application
Dim xlsBook As Excel.Workbook
Dim xlsSheet As Excel.Worksheet
Dim ind As Byte
Set xlsAppl = CreateObject("Excel.Application")
xlsAppl.Visible = False
Set xlsBook = xlsAppl.Workbooks.Open(AB)
Set xlsSheet = xlsBook.Worksheets(Zadanie)
Dim IleSztuk As Integer
Dim A
Dim IloscNiepustych As Integer
Dim IloscLiczb As Integer
Dim i, j As Integer
'tu chciałem przeliczyć ilość wypełnionych komórek w zadanym zeszycie , ale nie udało się - błędy
' więc liczę w Accessie choć to błąd, bo klient może nie uaktualnić relacji Access-Excel i bum !!!
' tzn , że chodzi o ilość nie pustych w kolunie A
IloscLiczb = DMax("nrpozycji", "zlecenie", "[nrwłasny]=3366 and [nrzadania]=1")
IleSztuk = 1
i = IloscLiczb + IleSztuk
'skopiowanie pierwszego wiersza 32 z tabeli i dodawanie go w 40 i wpisanie wartości
Rows("40:40").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Rows("32:32").Select
Selection.Copy
Rows("40:40").Select
ActiveSheet.Paste
'tu wodotrysk
Rows("39:40").Select
Selection.Style = "Neutralny"
Range("u" & 40).Value = 0
Range("b" & 40).Value = "kjhkhkl jhlkhlh mmmmmmmmmmmm"
Range("c" & 40).Value = ""
Range("d" & 40).Value = 1
'przelicz kolumnę -konieczne
' Application.CutCopyMode = False
Range("a4:a5").Select
Selection.AutoFill Destination:=Range("a4:a" & i + 3), Type:=xlFillDefault
'przesunięcie komórki zdefiniowanej "netto" -konieczne
With ActiveWorkbook.Names("netto2")
.Name = "netto2"
.RefersToR1C1 = "='Zad (2)'!R62C14"
.Comment = ""
End With
xlsAppl.DisplayAlerts = False
xlsBook.save
Set xlsSheet = Nothing
Set xlsBook = Nothing
xlsAppl.Quit |
|
|
 | ID posta:
391762
|
|
|
 |
|
|
|
marzatela
Excel Expert


Zaproszone osoby: 309
Pomogła: 464 razy Posty: 2560
|
Wysłany: 07-09-2020, 07:03
|
|
|
Oj, chyba coś tu nie tak. To cała procedura? Przede wszystkim - czy ten plik Excela jest udostępniony? Bo jeżeli nie - to nic dziwnego, że mogą już na starcie wystąpić problemy, a zmian tym bardziej nie da się zapisać. Co kryje się pod zmienną Zadanie? Chcąc ustawić Kod: | Set xlsSheet = xlsBook.Worksheets(Zadanie) | też musisz mieć ją zdefiniowaną, a piszesz tylko o AB. |
_________________ marzatela
http://www.szultaset.pl |
|
 | ID posta:
391778
|
|
|
 |
|
|
|
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Możesz ściągać załączniki na tym forum
|
Dodaj temat do Ulubionych Wersja do druku
|
 |
Strona używa plików cookies.
Kliknij tutaj, żeby dowiedzieć się jaki jest cel używania cookies oraz jak zmienić ustawienia cookie w przeglądarce.
Korzystając ze strony użytkownik wyraża zgodę na używanie plików cookies, zgodnie z bieżącymi ustawieniami przeglądarki.
Sprawdź, w jaki sposób przetwarzamy dane osobowe
|