[Access VBscript]onLoad record kopieren

Pagina: 1
Acties:

  • 418O2
  • Registratie: November 2001
  • Niet online
Ik zit nu nog steeds met die database te klooien en ik kom steeds verder. WE hebben nu al een invoer formulier gemaakt en die werkt goed. Alleen er zit nu een knop op het formulier die de record kopieert, wat dus wel moet gebeuren. Maar nu willen we graag dat hij tijdens het laden van het formulier al die record kopieert.

Dat kopieren is om nieuwe gegevens toe te voegen. Maar aangezien er per record meestal maar een paar gegevens wijzigen is het wel handig als de rest gekopieerd wordt.

De inhoud van de knop:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Private Sub Command91_Click()
On Error GoTo Err_Command91_Click


    DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
    DoCmd.DoMenuItem acFormBar, acEditMenu, 2, , acMenuVer70
    DoCmd.DoMenuItem acFormBar, acEditMenu, 5, , acMenuVer70 'Paste Append

Exit_Command91_Click:
    Exit Sub

Err_Command91_Click:
    MsgBox Err.Description
    Resume Exit_Command91_Click
    
End Sub


hoe bouw ik dit zo om dat hij tijdens het laden van het formulier al kopieert?
Ik heb al beveiliging ingbouwd dat er geen duplicate records komen. En hij slaat gegevens pas op als je op save klikt.

Plz help me ik kom er niet uit ;(

Verwijderd

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    Dim rs  As Recordset
    Dim rs2 As Recordset
    Dim lCnt As Long
    
    'open table and move to empty record
    'rs.open ...
    'rs.move ...
    
    'open table and move to record that we want to copy
    'rs2.open ...
    'rs2.move ...
    
    'copy all fields
    For lCnt = 1 To rs.Fields.Count
        rs.Fields(lCnt).Value = rs2.Fields(lCnt).Value

    Next lCnt

  • 418O2
  • Registratie: November 2001
  • Niet online
:? hoe moet ik dit aanpassen? Tabelnaam is lyn_1..

[//edit]

het zou ook wel handig zijn als je dan de aparte kolommen apart kan kopieren want een paar hoeven ei'k niet gekopieerd te worden...

[//edit]

  • 418O2
  • Registratie: November 2001
  • Niet online
ermm ik wil het ei'k wel oplossen. Kan ik ook selecteren welke kolommen hij wel en welke hij niet kopieert? Dat zou wel handig zijn omdat je dan makkelijk kan verplichten dat bepaalde velden worden ingevuld.

De juist tip wordt beloond met een _/-\o_ ;)

Verwijderd

kollomen ??? eeuh je wou toch een single record copien ??? of een hele table ??

  • 418O2
  • Registratie: November 2001
  • Niet online
een single record... Ik versprak me.. maar hoe moet ik die code van jou ombouwen dat het bij het laden werkt?

Ennuh nogiets:

Ik heb een query aangemaakt om het formulier omheen te bouwen. alleen nu geeft het formulier steeds 2 records door: de laatste EN een nieuwe, lege record. Dat is heel onhandig omdat je dan scrollen kan in de records en dat is niet de bedoeling. Ik heb dus al ingesteld dat hij alleen de bovenste laat zien, maar die nieuwe record komt er dus ook bij.

EN ik heb een query die dat niet doet, maar kheb geen idee waarom niet. MAAR de formulieren die ik daarom heen bouw zijn niet te editten. Ik krijg dan de melding: Recordset is not updatable.

Who knows how I can solve this :?

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 01-09 13:54

Crazy D

I think we should take a look.

Sorry maar das toch gewoon een stukje logica...
Als je de gebruiker wilt laten bepalen welke velden hij/zij wil overnemen, maak je een listje met de veldnamen. Als je dat zelf wil bepalen zie ik het probleem niet zo.
1. recordset met juiste query openen (select alleen_die_velden from tabel) en dan bovenstaand loopje om de records te kopieeren
en/of
2. recordset openen, rs2("veld") = rs1("veld") en dat voor alle velden die je wilt kopieeren...

Exact expert nodig?


Verwijderd

nwe record kan je uitzetten met de property AllowAdditions = false

  • 418O2
  • Registratie: November 2001
  • Niet online
C++:
1
2
3
4
5
6
Option Compare Database

Private Sub onLoad()
AllowEdits = True
AllowAdditions = False
End Sub


Mhh dat werkt niet..

Maar over logisch gesproken.. Ik ben echt dom.. IIG ik weet geen niks van VBScript. Dus als jullie liev willen doen dan zou ik dat wel :x vinden.. Maarja.. Plz help ;(

Verwijderd

code:
1
2
3
4
5
Private Sub Form_Load()

    AllowAdditions = False
    
End Sub

  • 418O2
  • Registratie: November 2001
  • Niet online
dat "Recordset is not updateble" rechtsonder blijft :|

[ Voor 0% gewijzigd door 418O2 op 05-09-2002 10:55 . Reden: verder typen ]


Verwijderd

Dat is een ander probleem, dat ligt aan je query. hoe ziet die query eruit ? Heb je er een join in ?
Heb je de primary key(s) gebruikt ?

  • 418O2
  • Registratie: November 2001
  • Niet online
code:
1
2
3
SELECT TOP 1 Lyn_1.ID, Lyn_1.BVAR, Lyn_1.[Gewijzigd door:], Lyn_1.[Reden:], Lyn_1.[Paraaf:], Lyn_1.Capaciteit, Lyn_1.Datum, Lyn_1.Produkttype, Lyn_1.R32, Lyn_1.R1, Lyn_1.R2, Lyn_1.R3, Lyn_1.R4, Lyn_1.R5, Lyn_1.R6, Lyn_1.R7, Lyn_1.R8, Lyn_1.R9, Lyn_1.R10, Lyn_1.R11, Lyn_1.R12, Lyn_1.R13, Lyn_1.R14, Lyn_1.R15, Lyn_1.R16, Lyn_1.R17, Lyn_1.R18, Lyn_1.R19, Lyn_1.R20, Lyn_1.R21, Lyn_1.R22, Lyn_1.R23, Lyn_1.R24, Lyn_1.R25, Lyn_1.R26, Lyn_1.R27, Lyn_1.R28, Lyn_1.R29, Lyn_1.R30, Lyn_1.R31
FROM Lyn_1
ORDER BY Lyn_1.ID DESC , Lyn_1.BVAR DESC;


Ennuh primary key zat er in. Heb ik er uit gehaald maar maakte niks uit.

Heb je emailadres btw? dat gaat misschien wat makkelijker. Mijne is max.keyner@dsm.com

  • 418O2
  • Registratie: November 2001
  • Niet online
het probleem zou ook opgelost zijn als je gewoon het scrollwiel kon disablen
Pagina: 1