Article View: pl.comp.bazy-danych.msaccess
Article #137780Re: Rekordset Zle importuje pierwszy rekord
From: Zbigniew Bratko
Date: Fri, 20 Nov 2020 22:21
Date: Fri, 20 Nov 2020 22:21
82 lines
3590 bytes
3590 bytes
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
Technical Details
Message-ID:
<5fb84159$0$553$65785112@news.neostrada.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!2.eu.feeder.erje.net!feeder.erje.net!news.uzoreto.com!aioe.org!peer02.ams4!peer.am4.highwinds-media.com!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-a-02.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mailReferences:
<68252894-2dbf-46a6-a36a-6c73955d87e7n@googlegroups.com>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!2.eu.feeder.erje.net!feeder.erje.net!news.uzoreto.com!aioe.org!peer02.ams4!peer.am4.highwinds-media.com!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-a-02.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail Subject: Re: Rekordset Zle importuje pierwszy rekord Newsgroups: pl.comp.bazy-danych.msaccess References: <68252894-2dbf-46a6-a36a-6c73955d87e7n@googlegroups.com> From: Zbigniew Bratko <adminBEZTEGO@accdb.pl> Date: Fri, 20 Nov 2020 23:21:06 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.4.3 MIME-Version: 1.0 In-Reply-To: <68252894-2dbf-46a6-a36a-6c73955d87e7n@googlegroups.com> Lines: 108 Message-ID: <5fb84159$0$553$65785112@news.neostrada.pl> Organization: Telekomunikacja Polska NNTP-Posting-Host: 5.172.232.206 X-Trace: 1605910873 unt-rea-a-02.news.neostrada.pl 553 5.172.232.206:24343 X-Complaints-To: abuse@news.neostrada.pl X-Received-Bytes: 3995 X-Received-Body-CRC: 2738217264 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit