Toon posts:

[VB] aanmaken recordset?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Nergens kan ik het vinden, help AUB.
Vanuit VB6

Ik heb een bestaande access-database met een variable naam, welke een kopie is van een database die is aangemaakt met Visual Data Manager.
Deze DB heeft een tabel genaamd "TOETS"
Deze bestaat uit 2 velden, NR en VRAAG. NR is Integer en Index, VRAAG is string.


Het data-object heet DATA1.

In het form is:
LBLNR.DATASOURCE = DATA1
LBLNR.DATAFIELD = NR
TXTVRAAG.DATASOURCE = DATA1
TXTVRAAG.DATAFIELD = VRAAG

Wanneer ik DATA1 hard laat verwijzen naar de database en tabel, dan werkt alles perfect.
Wanneer ik echter pas in het programma de databasenaam op wil geven, dan snap ik het niet meer.

Volgens mij moet ik DATA1.DATABASENAME en DATA1.RECORDSOURCE goedzetten, dat lukt wel.
Vervolgens moet er volgens mij een recordset gecreëerd worden, maar hoe?

Ik ben onwijze NewBee, dus help aub.
mocht ik niet duidelijk zijn, zeg dan wat...

THANKS!

Verwijderd

Zo te zien gebruik je nu DAO, en je kan beter ADO (ActiveX Data Objects) gebruiken. Dat is immers moderner, en wordt beter ondersteund.
Als je met de search zoekt naar 'ADO Recordset' of 'ADO databinding' moet je al een heel end komen. :)
Maar om je een beetje de weg te wijzen, bij een ADODC control (die je moet neerzetten op je form) moet je een connectionstring opgeven.
Voorbeelden daarvan kan je hier vinden: http://www.able-consulting.com/ADO_Conn.htm
In die connection string geef je de DB naam op.
code:
1
2
Con.ConnectionString ADODC1 = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & strDatabaseName
ADODC1.Refresh

Als je je databinding dan goed hebt, dan moet je al een end op weg zijn, mocht het niet lukken, moet je het maar laten weten :)

Verwijderd

Topicstarter
OK, ik gebruik dus DAO.
Hoe krijg ik dan een recordset met DAO.

Wanneer ik dus in de object-attributen van DATA1 en TXTVRAAG hard verwijs naar de database, dan heb ik gewoon een recordset tot m'n beschikking waar ik verder niets aan hoef te doen.
Dan kan ik gewoon aan de slag met (bv) DATA1.RECORDSET.MOVELAST

hoe kom ik zover wanneer ik pas de link met de database leg tijdens het programma?

  • kaandorp
  • Registratie: November 1999
  • Laatst online: 03-09 22:36
Je kunt beter ADO gebruiken, zoals hierboven al staat.
Bij een DAO datacontrol kun je volgens mij niet in runtime de databasenaam opgeven. Alleen in design mode. Maar dat kan ik fout hebben.

Kijk eens op: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/mdmscadocodeexamplesinvisualbasic.asp

Daar staan een hoop voorbeelden van ADO in pure code... Werkt snel en na enige gewenning ook gemakkelijk.

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 22:22

mulder

ik spuug op het trottoir

Dim dbs As Database

Set dbs = OpenDatabase(sName, "admin", "")

ofzoiets, maar het is zeker wel mogelijk om alles runtime dynamisch te regelen.

oogjes open, snaveltjes dicht


Verwijderd

Topicstarter
Thanks,

Ik ga nu idd zoals El_Mundo zegt, dat werkt.

Ook al heb ik daar ook alweer een prob. mee, zie andere post.

  • BSeB
  • Registratie: Juni 2001
  • Laatst online: 22-09-2025
HOe moet het dan met ADO en active elementen, want ik kan mijn verbinding leggen en uitlezen in een databound control en ook in verschillende textboxen, maar ik weet niet hoe ik het moet toevoegen, duis nieuwe record aanmaken zonder met code te kloten

Verwijderd

Recordset.AddNew en Recordset.Update. Maat in de search/MSDN/google/help is hier genoeg over te vingen :)
Pagina: 1