Toon posts:

ADODC Probleem in VB

Pagina: 1
Acties:

Verwijderd

Topicstarter
ik heb het volgende probleem in Visual Basic met adodc.
Als je in VB een adodc aanmaakt MOET je verplicht een RecordSource opgeven.
ik ben nu een script aan het schrijven voor een zoeksysteem die dus in meerdere tabellen moet kunnen zoeken, ik maak dan dus gebruik van een SQL Query met variabelen die dan de zoek opdrachten van de gebruiker invult.
maar het probleem is dat de recordsource die je opgeeft bij ADODC instellingen, dat je die niet kan veranderen doormiddel van een SQL Query ( tenminste ik ben er nog niet achtergekomen hoe ), hij negeert hem gewoon en laat gewoon domweg alles zien wat in die ene tabel staat die je hebt opgegeven bij de recordsource van ADODC.

Herkent iemand dit probleem en heeft ie er misschien een oplossing voor ?
misschien een stukje code dat ie adodc wel de recordsource kan veranderen.

  • Daos
  • Registratie: Oktober 2004
  • Niet online
Bedoel je niet ADODB?

De tabel geef je pas op in je query. Het ziet er zo uit:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
strSource = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb"

Set objConnection = CreateObject("ADODB.Connection")
objConnection.Open strSource

SQLQuery = "SELECT * FROM tabel"  
Set rsList = objConnection.Execute(SQLQuery)

Do Until rsList.EOF
  ID = rsList("ID")  
  n = rsList("NAAM")  

  MsgBox n & " heeft " & ID & " als ID"

  rsList.MoveNext 
Loop

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Een ADODC bestaat ook ( ActiveX Data Ojects Data Control) :)

Volgens deze pagina moet het wel kunnen. Ik denk dat je niet de recordsource in de properties moet zetten (leeg laten dus) maar alleen met code. Als je een recordsource in de properties zet kun je hem niet meer @ runtime veranderen

Oops! Google Chrome could not find www.rijks%20museum.nl


Verwijderd

Topicstarter
[quote]Daos schreef op woensdag 12 januari 2005 @ 14:57:
Bedoel je niet ADODB?


jij doet de verbinding handmatig instellen, dat doe je inderdaad via ADODB, dat heb ik in ASP ook gedaan, maar ik doe het via ADODC in VB, scheelt je veel programmeerwerk, maar is misschien in dit geval wel een betere oplossing omdat je anders tegen dat probleem aanloopt.
maar ik hoop dat het toch anders kan

Verwijderd

Topicstarter
P_de_B schreef op woensdag 12 januari 2005 @ 15:05:
Een ADODC bestaat ook ( ActiveX Data Ojects Data Control) :)

Ik denk dat je niet de recordsource in de properties moet zetten (leeg laten dus) maar alleen met code. Als je een recordsource in de properties zet kun je hem niet meer @ runtime veranderen
dat dacht ik dus ook, maar je kan die recordsource niet leeg laten dan komt ie namelijk met een error. dat is het probleem.

dan krijg je de volgende error:
[adodc]no Recordsource specified. [ado]:de opdrachttekst is niet ingesteld voor het opdrachtobject.

ik ga nog even op die site kijken die je me gaf, bedankt voor de reacties in ieder geval

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Je moet wel in de code een recordsource zetten voordat je hem gebruikt. In je formload event of zo

Oops! Google Chrome could not find www.rijks%20museum.nl


  • sopsop
  • Registratie: Januari 2002
  • Laatst online: 11-05 08:55

sopsop

[v] [;,,;] [v]

Daos schreef op woensdag 12 januari 2005 @ 14:57:
... maar ik doe het via ADODC in VB, scheelt je veel programmeerwerk...
Ik heb ooit één keer een een connectie module voor ADODB gemaakt, wat ook nog niet eens veel werk was, en die kan ik prima voor alles gebruiken.

Ik ben gewoon niet zo kapot van ADODC, vooral omdat je met ADODB gewoon alle vrijheid hebt. ADODC is voor het quick & dirty programmeerwerk, en keer op keer heb ik daar mijn hoofd mee gestoten, omdat het uiteindelijk veel meer werk werd omdat het zo inflexibel als de pest is.

[ Voor 9% gewijzigd door sopsop op 12-01-2005 15:41 ]


Verwijderd

Topicstarter
P_de_B schreef op woensdag 12 januari 2005 @ 15:32:
Je moet wel in de code een recordsource zetten voordat je hem gebruikt. In je formload event of zo
ja maar das toch hetzelfde als dat je hem in adodc zet bij de recordsource.
want de query gaat pas in werk nadat de gebruiker zijn zoekopties heeft opgegeven.

Verwijderd

Topicstarter
het is me eindelijk gelukt. _/-\o_
en ik heb gewoon in adodc bij properties de recordsource laten staan.
het probleem was dat ik het in 2 subs had verdeeld, wel public subs, dus ik dacht dat is dan geen probleem met de variabelen, ik getest met messageboxen en hij nam inderdaad gewoon de waardes mee, maar toch werkte dat niet goed, kwam ik later achter.
dus toen had ik een oplossing bedacht hoe ik het in 1 sub kon zetten en toen werkte die.

alleen nu heb ik een nieuw probleem !!!! :X
ik wil de datagrid ( waar de resultaten in komen ) leegmaken door behulp van codes,
ik heb het volgende geprobeerd:
datagrid1.clearfields
maar dat werkt niet. weet iemand een oplossing hiervoor ????

Verwijderd

Nog even over het toekennen van een SQL-query aan je ADODC.

Het kan volgens mij ook op de volgende manier :
- Zorg ervoor dat je ADODC geen enkele proprty heeft gezet ( dus zowel recordsource als connection-properties leeg ! )
- open je recordset
- doe dan
code:
1
  set ADODC1.Recordset = RS

Verwijderd

Topicstarter
nog een ander probleem waar ik tegenop ben gelopen is het volgende:

ik heb een combobox met voorgedefineerde waarden en ik wil dat de gebruiker alleen een waarde kan aanklikken en verder niets kan invoeren.

weet iemand hoe dat mogelijk is ?

Verwijderd

Topicstarter
Ik heb nog effe doorgezocht en heb inmiddels al een oplossing.
Je moet dan de combobox aanklikken en dan bij STYLE optie 2 selecteren Dropdown List.
je kan dan alleen geen text toevoegen die je dan standaard ziet het form start, maar ja, dat is niet zo'n groot probleem.
Pagina: 1