Thread View: pl.comp.bazy-danych.msaccess
3 messages
3 total messages
Started by Kali
Wed, 18 Nov 2020 12:40
Rekordset Zle importuje pierwszy rekord
Author: Kali
Date: Wed, 18 Nov 2020 12:40
Date: Wed, 18 Nov 2020 12:40
55 lines
1518 bytes
1518 bytes
Witam Dla swoich potrzeb firmowych tworzę sobie od lat. choć moja wiedza jest bardzo mała. jak ktoś może mi pomóc polecam się. Rekordset tworzy tabele i wszystko dział dobrze, lecz zawsze się żle tworzy pierwszy rekord się sypie. Napisany kod; Dim db As DAO.Database Dim rcNr1 As DAO.Recordset Dim rcNr3 As DAO.Recordset ' do tabelki pionowej z towarami Set db = CurrentDb Set rcNr1 = db.OpenRecordset("SELECT import.Pole1 FROM import WHERE (((import.Pole1) Is Not Null))", dbOpenDynaset) Set rcNr3 = db.OpenRecordset("Import1") rcNr1.MoveFirst Do While Not rcNr1.EOF With rcNr3 If rcNr1.Fields(0) = 1203855 Then rcNr1.Move (-1) idzamowienia = rcNr1.Fields(0) rcNr1.Move (2) a = Mid(idzamowienia, 1, InStr(idzamowienia, Chr(45)) - 1) b = Left(Mid(idzamowienia, InStr(idzamowienia, Chr(45)) + 1), 9) c = Replace(Mid(idzamowienia, InStr(idzamowienia, b)), b & Chr(45), "") Else If InStr(rcNr1.Fields(0), b & Chr(45) & c) > 0 Then .AddNew ![idzamowienia] = idzamowienia ![a] = a ![d] = rcNr1.Fields(0) rcNr1.Move (1) ![e] = rcNr1.Fields(0) rcNr1.Move (1) ![f] = rcNr1.Fields(0) .Update Else End If rcNr1.MoveNext End If End With Loop rcNr1.Close rcNr3.Close Set rcNr1 = Nothing Set rcNr3 = Nothing End Sub podejrzewam,że tajemnica jest w: Do While Not rcNr1.EOF a może w czymś innym? Sławek
Re: Rekordset Zle importuje pierwszy rekord
Author: Zbigniew Bratko
Date: Fri, 20 Nov 2020 23:21
Date: Fri, 20 Nov 2020 23:21
107 lines
2949 bytes
2949 bytes
This is a multi-part message in MIME format. --------------60B8DDEE52E2E4D871398E87 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit W dniu 18.11.2020 o 21:40, Kali pisze: > Witam > Dla swoich potrzeb firmowych tworzę sobie od lat. choć moja wiedza jest bardzo mała. > > jak ktoś może mi pomóc polecam się. > Rekordset tworzy tabele i wszystko dział dobrze, lecz zawsze się żle tworzy pierwszy rekord się sypie. > Napisany kod; > > Dim db As DAO.Database > > Dim rcNr1 As DAO.Recordset > Dim rcNr3 As DAO.Recordset ' do tabelki pionowej z towarami > Set db = CurrentDb > > Set rcNr1 = db.OpenRecordset("SELECT import.Pole1 FROM import WHERE (((import.Pole1) Is Not Null))", dbOpenDynaset) > Set rcNr3 = db.OpenRecordset("Import1") > rcNr1.MoveFirst > > Do While Not rcNr1.EOF > With rcNr3 > If rcNr1.Fields(0) = 1203855 Then > rcNr1.Move (-1) > idzamowienia = rcNr1.Fields(0) > rcNr1.Move (2) > a = Mid(idzamowienia, 1, InStr(idzamowienia, Chr(45)) - 1) > b = Left(Mid(idzamowienia, InStr(idzamowienia, Chr(45)) + 1), 9) > > c = Replace(Mid(idzamowienia, InStr(idzamowienia, b)), b & Chr(45), "") > Else > If InStr(rcNr1.Fields(0), b & Chr(45) & c) > 0 Then > .AddNew > ![idzamowienia] = idzamowienia > ![a] = a > ![d] = rcNr1.Fields(0) > rcNr1.Move (1) > ![e] = rcNr1.Fields(0) > rcNr1.Move (1) > ![f] = rcNr1.Fields(0) > .Update > Else > End If > rcNr1.MoveNext > End If > End With > Loop > rcNr1.Close > rcNr3.Close > Set rcNr1 = Nothing > Set rcNr3 = Nothing > End Sub > > podejrzewam,że tajemnica jest w: > Do While Not rcNr1.EOF a może w czymś innym? Do While Not rcNr1.EOF na pewno nie powoduje błędu zapisu 1-szego rekordu. pozwala Ci przesuwać się po rekordsecie aż do końca zestawu. ' a nie jest przypadkiem tak, że dla pola pierwszego wiersza rekordsetu, rcNr1.MoveFirst, które nie jest równe 1203855 'If rcNr1.Fields(0) = 1203855 Then ' wykonywana jest część instrukcji Else 'If InStr(rcNr1.Fields(0), b & Chr(45) & c) > 0 Then ' ponieważ zmienne b="" i c="" (to puste ciągi znaków), szukanym ciągiem w rcNr1.Fields(0) jest znak "-" 'zmienna a także = "" (ta zapisywana w polu ![a]) Ale nie jestem w stanie dokładnie przeanalizować Twojego rozwiązania. Czy ty przypadkiem nie masz zapisanych danych odnośnie zamówienia w trzech kolejnych wierszach tabeli? -- Pozdrawiam Zbigniew Bratko --------------60B8DDEE52E2E4D871398E87 Content-Type: text/x-vcard; charset=utf-8; name="adminBEZTEGO.vcf" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="adminBEZTEGO.vcf" begin:vcard fn:Zbigniew Bratko n:Bratko;Zbigniew note;quoted-printable:-- Pozdrowienia BraZby www.faq.accdb.pl www.accdb.pl version:2.1 end:vcard --------------60B8DDEE52E2E4D871398E87--
Re: Rekordset Zle importuje pierwszy rekord
Author: Kali
Date: Thu, 26 Nov 2020 08:19
Date: Thu, 26 Nov 2020 08:19
6 lines
204 bytes
204 bytes
Jeszcze raz przeczytałem, zrozumiałem i poprawiłem na: If InStr(rcNr1.Fields(0), b & Chr(45) & c) > 0 And Len(a) > 3 Then i działa o wiele piękniej. Jeszcze raz dziękuje sk
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads