Loopen van deze sql-query voor Acces kolom

Pagina: 1
Acties:

  • dynast
  • Registratie: December 2002
  • Laatst online: 02-08-2025
Ik moet een tabel vullen met waarden beginnend met 15, 16, 17 enzovoort om de 471 records. Hoe kan daarom deze query 'loopen' om de kolom in een keer te vullen?

UPDATE table SET kolom1 = '15'
WHERE [Id]>=1 AND [Id]<=472;

  • whoami
  • Registratie: December 2000
  • Laatst online: 22:40
Een tabel vul je niet met UPDATE maar met INSERT.

Ik heb thuis ergens in een boek staan hoe je dat makkelijk kunt doen dmv een pattern. Ik weet niet 'by heart' hoe dat moet, maar het had te maken met een (extra) tabel die je had, met daarin bv 10 records met enkel een id in.
Dmv cartesiaanse producten van deze tabel kon je dan makkelijk andere tabellen vullen zoals jij dat wil.
Het boek waar het om gaat: Transact SQL Cookbook van O'Reilly

https://fgheysels.github.io/


  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Wil je ID 1-471 vullen met 15 en de volgende 471 met 16 en zo door?
Dan doe je dat met een MOD functie op de ID.

  • dynast
  • Registratie: December 2002
  • Laatst online: 02-08-2025
Dat is idd wat ik wil.. maar hoe pas ik hier dan die operator mod op toe?

  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Ik had het trouwens fout in bedoelde een deling naar een integer toe.
Je deelt de ID door 471, maakt er een INT van (met bijv. floor) en telt er dan 15 bij op.

Verwijderd

Dubbele recusieve functie in VBA?

code:
1
2
3
For (a=15; a<25; a++)
   For (i=1; i<472; i++)
      'En dan je SQL statement met a als variabele

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 26-08 12:42

Janoz

Moderator Devschuur®

!litemod

DaJaN, das geen recursie, maar gewoon een geneste loop ;)

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Janoz schreef op 07 januari 2003 @ 11:28:
DaJaN, das geen recursie, maar gewoon een geneste loop ;)
Ach ja, het beestje moet een naam hebben O-) ...

Maar je hebt gelijk: Allang geleden dat ik programmeren heb gevolgd!

  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Wat is dat nou heren, dit doe je toch echt niet met een loop maar gewoon een update statement met de functie op de ID losgelaten die ik net heb aangegeven.

  • dynast
  • Registratie: December 2002
  • Laatst online: 02-08-2025
Ik heb het op deze manier geprobeert zonder dat ik nu die sql statement hoef aan te roepen want ik kan binnen die query toch geen variabelen gebruiken. Maar de functie Edit werkt gewoon niet. :( What's wrong?
(Ik wil dat hij vanaf record 64193 begint btw.)

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Option Compare Database
Option Explicit
Function start()
Dim rst As Recordset, db As Database, usernr As Integer, teller As Integer
Set db = CurrentDb()
Set rst = db.OpenRecordset("groepapp", dbOpenDynaset, dbAppendOnly)
usernr = 289
teller = 0
rst.Edit
rst.FindFirst "Id = 64193"
While Not rst.EOF
    rst![Nr] = usernr
    teller = teller + 1
    If teller = 472 Then
        teller = 0
        usernr = usernr + 1
    End If
    rst.MoveNext
    Wend
rst.update
End Function

[ Voor 3% gewijzigd door dynast op 08-01-2003 10:10 ]


Verwijderd

insert into tblA
select * from tblA
where Id > 14

klaar!

UPDATE tblA
select * from tblA
where Id > 14

Nog een keer klaar!

[ Voor 40% gewijzigd door Verwijderd op 08-01-2003 10:32 ]


  • dynast
  • Registratie: December 2002
  • Laatst online: 02-08-2025
Verwijderd schreef op 08 januari 2003 @ 10:31:
insert into tblA
select * from tblA
where Id > 14

klaar!

UPDATE tblA
select * from tblA
where Id > 14

Nog een keer klaar!
Tuurlijk niet.. |:(
Pagina: 1