Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Access ja "kopiointi"

leppo1 [06.09.2005 22:24:48]

#

Moi
Rustailen tässä pientä projektia. Nyt olen hieman jumissa.
Teen tietokantaa joka käsittelee osaluetteloita.

Osaluettelo jossa olevat komponentit on eritelty tunnuksella tiettyyn osaluetteloon. Miten voisin kopioida toisesta osaluettelosta "pohjan" (samat osat) uuteen osaluetteloon? Ja vielä siten että osaluettelon tunnus muuttuu ja vanha säilyy.

Tossa alla on jonkinlainen yritelmä mutta en saa sitä toimimaan.

'Taulun määritys
Dim dbsKaikkiLuettelot As DAO.Database
Dim rstKysely As DAO.Recordset
Dim stSQL as String
Static Taulukko(1000,1000) as Variant 'Väliaikainen taulukko

Set dbsKaikkiLuettelot = CurrentDb

'Kyselyn muodostus
stSQL = "SELECT OSALUETTELOT.Osaluettelo, OSALUETTELOT.Komponentti "
stSQL = stSQL & "FROM OSALUETTELOT"
stSQL = stSQL & "WHERE (((OSALUETTELOT.Osaluettelo)=" & Chr(34)
stSQL = stSQL & HaluttuOsaluettelo & Chr(34) & "));" 'Chr(34) koska lainausmerkit tarvitaan

'Kyselyn käynnistys
Set rstKysely = dbsKaikkiLuettelot.OpenRecordset(stSQL, dbOpenDynaset) 'Kyselyn muodostus

'Tiedot taulukkoon
   rstKysely.MoveFirst
   i = 1
   'Silmukka
   do
      Taulukko(i,1) = rstKysely!Komponentti
      i = i + 1
      rstKysely.MoveNext
   Loop While Not rstKysely.EOF

'Tiedot tauluun
   For j = 1 To i - 1
      rstKysely.AddNew
         rstKysely!Osaluettelo = UusiOsaluetteloNimi
         rstKysely!Komponentti = Taulukko(j)
      rstKysely.Update
   next j

Esim. rivi:

Set rstKysely = dbsKaikkiLuettelot.OpenRecordset(stSQL, dbOpenDynaset) 'Kyselyn muodostus

Valittaa pakollisen objektin puutetta???

Pienestäkin avusta kiitollinen :)

T: leppo

BadSource [07.09.2005 07:19:12]

#

SQL:n Insert Into:lla voit "varmuuskopioida" tietoja helposti.

INSERT INTO OSALUETTELOT
SELECT [UusiOsaluettelo] AS Osaluettelo, o.Komponentti
FROM OSALUETTELOT o
WHERE o.Osaluettelo=[HaluttuOsaluettelo]
GROUP BY o.Komponentti;

Edit: Unohtui mainita, että Select-osassa pitää hakea kaikki kentät siinä järjestksessä, missä ne on tuolla Osakuettelot-taulussa, että Insert Into osaa ne lisätä oikein taulukkoon.

leppo1 [12.09.2005 22:13:47]

#

Kiitos
Sain tuon tekemäni koodin toimimaan, kun sain siihen apuja.

BadSource tossa esimerkissäsi SQL-koodia on se vika että, sama komponentti ei kopioidu kuin kerran. Eli jos yritän kopioida 1,2,3,4,1,2 niin ei kopioidu kuin 1,2,3,4

T;leppo

BadSource [14.09.2005 13:52:54]

#

Group By poistaa tuplat ryhmitellen arvot yhteen. Korvaa Group By Order By:lla, niin saat lisättyä arvot 1,2,3,4,1,2. Jäsjestys on tosin 1,1,2,2,3,4.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta