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 jEsim. rivi:
Set rstKysely = dbsKaikkiLuettelot.OpenRecordset(stSQL, dbOpenDynaset) 'Kyselyn muodostus
Valittaa pakollisen objektin puutetta???
Pienestäkin avusta kiitollinen :)
T: leppo
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.
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
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.
Aihe on jo aika vanha, joten et voi enää vastata siihen.