🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.bazy-danych.msaccess
Article #137780

Re: Rekordset Zle importuje pierwszy rekord

#137780
From: Zbigniew Bratko
Date: Fri, 20 Nov 2020 22:21
82 lines
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-mail
References: <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