[ACCESS]Tabel openen en records toevoegen vanuit code

Pagina: 1
Acties:
  • 239 views sinds 30-01-2008
  • Reageer

Acties:
  • 0 Henk 'm!

  • BlackBurn
  • Registratie: Juni 2001
  • Laatst online: 18-06 15:27

BlackBurn

One Ring To Rule Them All

Topicstarter
Ik ben bezig met een access applicatie te maken, nu heb ik een formulier waarbij meerdere tabellen bewerkt moeten worden, een tabel heb ik gekoppeld aan het formulier en word netjes geupdated na het klikken op de knop d.m.v. docmd.

Nu zijn er ook gegevens die ik in een array heb, deze gegevens moeten in een andere tabel komen. Mijn vraag is nu hoe kan ik een tabel openen vanuit VB(ACCESS) en deze evt. in een recordset gooien, zodat ik op een heel gemakkelijke wijze, de records kan toevoegen, zoiets dus.

Visual Basic:
1
2
3
4
5
6
7
    For Cnt = 1 To I - 1
      rsArtFact.AddNew
      rsArtFact("FactID") = intFactID
      rsArtFact("ArtID") = Array(Cnt, 1)
      rsArtFact("Aantal") = 1
      rsArtFact.Update
    Next


Heb al geprobeerd om net als bij ASP de database te openen, dus als volgt, maar het moet in mijn ogen makkelijker kunnen, aangezien access een DB app is.

Visual Basic:
1
2
3
4
5
6
7
8
9
10
    Dim strSQL As String
    Dim strDB As String
   
    Set cnDB = New ADODB.Connection
    strDB = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\fact.mdb"
    cnDB.Open strDB
   
    Set rsArtFact = New ADODB.Recordset
    strSQL = "SELECT * FROM tblArtFact"
    rsArtFact.Open strSQL, cnDB


De foutmelding die ik overigens krijg, is bij rsArtFact.AddNew en is als volgt, kan geen bewerkingen uitvoeren.

If it is broken, fix it. If it ain't broken, make it better!


Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 14:26

gorgi_19

Kruimeltjes zijn weer op :9

Kan je misschien de exacte, engelstalige, foutmelding ook neerzetten?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

  • BlackBurn
  • Registratie: Juni 2001
  • Laatst online: 18-06 15:27

BlackBurn

One Ring To Rule Them All

Topicstarter
Krijg geen engelse foutmelding, maar het probleem is nu opgelost :) was vergeten de recordset van readonly af te halen |:(

If it is broken, fix it. If it ain't broken, make it better!


Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 14:42
Ik vind het zowiezo mooier om records toe te voegen dmv een SQL INSERT statement ipv met die recordset te zitten pielen.

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • xtra
  • Registratie: November 2001
  • Laatst online: 07-06 16:44
Als je toch al een verbinding hebt in je database dan kun je die inderdaad net zo goed gebruiken. Dit kan als volgt m.b.v. DAO:
code:
1
2
3
4
5
6
7
8
Dim myDB As DAO.Database, myRS As DAO.Recordset
Dim sSql As String
sSql = "SELECT x, y FROM z;"
Set myDB = Access.CurrentDb
Set myRS = myDB.OpenRecordset(sSql, dbOpenForwardOnly)
[whatever...]
myRS.Close
Set myRS = Nothing

In je VBA-scherm moet je wel bij verwijzingen/references 'Microsoft DAO x.x Object Library' hebben aangevinkt.
Dit werkt prima bij een Access Database (MDB). Bij een Access Prpject (ADP) werkt het anders, maar daar heb ik me nog niet in verdiept :).
whoami schreef op 04 June 2003 @ 15:50:
Ik vind het zowiezo mooier om records toe te voegen dmv een SQL INSERT statement ipv met die recordset te zitten pielen.
In een ander topic schreef je dit ook al, maar kun je dit ook onderbouwen?
Zeker bij een routine waar je flexibel wilt zijn in welke velden je wijzigt kan de AddNew/Update methode best handig en overzichtelijk zijn.
Ik moet overigens toegeven dat ik dat sinds Access 2.0 al niet meer heb gebruikt :)

[ Voor 31% gewijzigd door xtra op 04-06-2003 16:17 ]