Toon posts:

[VB+ Access] gegevens naar tabel schrijven.

Pagina: 1
Acties:

Verwijderd

Topicstarter
Overzicht:
Tabel (access97):
Naam: "Contactpersonen"
Record: NaamID(primair) en Naam

Tabel (access97):
Naam: "Project"
Inhoud: ProjectID(primair), NaamID

Nu heb ik in VB een 2 listboxen + 1 commandbutton gemaakt in een form.

Listbox1 => De namen(Naam) uit de tabel "Contactpersonen" worden weergegeven.

Command1 => Als in Listbox1 een naam is geslecteerd zet deze dan in Listbox2

Listbox2 => De naam die in Listbox1 stond staat nu hier.


In Access : staan in de tabel "Contactpersonen" de namen van de personen met hun eigen ID. De ID van de geselecteerde persoon(en) moet naar de Tabel "Project" toe bij het record "NaamID"


Hoe kan ik dit realiseren?

Verwijderd

Ik kan je dit vertellen, misschien dat je er wat aan hebt met listbox1:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
Dit is een .asp file om gegevens UIT een databse te laten zien (response.write)
-------------------------
<head>
<title>Untitled Document</title>
<%
Dim DbConn
Dim DbConnStr
Dim DbPad
Dim Rs[Tabelnaam]

Dim Sql[Tabelnaam]

Set DbConn = Server.CreateObject("Adodb.Connection")
Set Rs[Tabelnaam] = Server.CreateObject("Adodb.Recordset")


DbPad = Server.MapPath("JEDATABASE.mdb")
 

DbConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DbPad

Sql[Tabelnaam] = "SELECT * FROM tabelnaam"

DbConn.Open DbConnStr
%>
</head>
<body>

Nu Ga je de gegevens in de body laten lezen:

<%
Rs[Tabelnaam].Open Sql[Tabelnaam], DbConn

If Rs[Tabelnaam].EOF Then
Response.Write "Er staan geen gegevens in de tabel"
Else

Do Until Rs[Tabelnaam].EOF
Response.Write(Rs[Tabelnaam]("CELNAAM").value)
Rs[Tabelnaam].MoveNext
Loop
End If
%>

Nu ga je alles netjes afsluiten:

<%
Rs[Tabelnaam].Close
Sql[Tabelnaam].Close
DbConn.Close

Set Rs[Tabelnaam] = Nothing
Set Sql[Tabelnaam] = Nothing
Set DbConn = Nothing
%>
</body>

Als je de gegevens uit de database niet als gewone tekst wil laten weergeven kun je dit ook doen door een textfield uit een form te gebruiken.
Eg:
Vervang Response.Write(Rs[Tabelnaam]("CELNAAM").value) door Response.Write(<input type="text" name="iets" value="(Rs[Tabelnaam]("CELNAAM").value)">)

Als dit niet werkt moet je zelf maar wat klooien met aanhalingtekens en haakjes :D

Jou rs[Tabelnaam] en sql[Tabelnaam] worden dus rsContactpersonen en sqlContactpersonen

En CELNAAM word dus naam

Maar als je niet iedere NaamID wilt laten zien moet je een specefieke ID aangeven, dit kan door devolgende code:
code:
1
2
3
4
5
6
7
8
9
10
11
<%
for each x in rs.Fields
    if x.name <> "ID" then%>
         
         
<input type="text" name="iets" value="<%=x.value%>" size="20">
    <%end if
next
rs.close
conn.close
%>

Ik weet niet precies hoe en waar je deze code in de code erboven moet zetten omdat ik deze zelf niet gebruik, maar dan weet je igg hoe het ongeveer moet...

Als je listbox een als een pulldown menu wilt zul je in een form dus een pulldown menu moeten maken, en de code tot en met rs.movenext als <option> doen...
Maar hoe je dan je selectie in textbox 2 krijgt moet je niet aan mij vragen :D

Verwijderd

Topicstarter
Op maandag 08 april 2002 14:53 schreef slindenau het volgende:

Maar hoe je dan je selectie in textbox 2 krijgt moet je niet aan mij vragen :D
Het probleem zit hem niet in het visuele gedeelte. Dat werkt allemaal. Ik kan door een persoon te selecteren op de commandbutton drukken en deze persoon spring over van listbox1 naar listbox 2. Dus het gaat hem enkel om. Dat de ID gegevens van de tabel "contactpersonen" naar de tabel "Project" Record NaamID gaat. maar iedergeval bedankt. En ik ga nog even doorpluizen.

Verwijderd

Gebruik AUB geen Response.Write in VB.
Ik weet niet of het werkt (en wil het niet weten ook).
Het is ASP en dat is wel een hele beperkte versie van VB.
Je kunt met een append (nieuw record)of update (bestaand record) query de gegevens opslaan in de database

Verwijderd

Op maandag 08 april 2002 15:31 schreef F1 het volgende:

[..]

Het probleem zit hem niet in het visuele gedeelte. Dat werkt allemaal. Ik kan door een persoon te selecteren op de commandbutton drukken en deze persoon spring over van listbox1 naar listbox 2. Dus het gaat hem enkel om. Dat de ID gegevens van de tabel "contactpersonen" naar de tabel "Project" Record NaamID gaat. maar iedergeval bedankt. En ik ga nog even doorpluizen.
Ow, je wilt In een database gegevent van een tabel naar een tabel schrijven...

Ik heb wel de asp codes om een nieuwe regel in een tabel te laten adden...als je die nodig hebt moet je het maar ff zeggen...
Maar dit is dus niet direct wat jij wil, maar misschien heb je er wel wat aan...

  • Feyd-Rautha
  • Registratie: November 2001
  • Laatst online: 02-08-2025
Op maandag 08 april 2002 14:39 schreef F1 het volgende:
Overzicht:
Tabel (access97):
Naam: "Contactpersonen"
Record: NaamID(primair) en Naam

Tabel (access97):
Naam: "Project"
Inhoud: ProjectID(primair), NaamID

Nu heb ik in VB een 2 listboxen + 1 commandbutton gemaakt in een form.

Listbox1 => De namen(Naam) uit de tabel "Contactpersonen" worden weergegeven.

Command1 => Als in Listbox1 een naam is geslecteerd zet deze dan in Listbox2

Listbox2 => De naam die in Listbox1 stond staat nu hier.


In Access : staan in de tabel "Contactpersonen" de namen van de personen met hun eigen ID. De ID van de geselecteerde persoon(en) moet naar de Tabel "Project" toe bij het record "NaamID"


Hoe kan ik dit realiseren?

I must not fear. Fear is the mind-killer. Fear is the little-death that brings total obliteration. I will face my fear. I will permit it to pass over me and through me. Where the fear has gone there will be nothing. Only I will remain.


  • Feyd-Rautha
  • Registratie: November 2001
  • Laatst online: 02-08-2025
Op maandag 08 april 2002 14:39 schreef F1 het volgende:
Overzicht:
Tabel (access97):
Naam: "Contactpersonen"
Record: NaamID(primair) en Naam

Tabel (access97):
Naam: "Project"
Inhoud: ProjectID(primair), NaamID

Nu heb ik in VB een 2 listboxen + 1 commandbutton gemaakt in een form.

Listbox1 => De namen(Naam) uit de tabel "Contactpersonen" worden weergegeven.

Command1 => Als in Listbox1 een naam is geslecteerd zet deze dan in Listbox2

Listbox2 => De naam die in Listbox1 stond staat nu hier.


In Access : staan in de tabel "Contactpersonen" de namen van de personen met hun eigen ID. De ID van de geselecteerde persoon(en) moet naar de Tabel "Project" toe bij het record "NaamID"


Hoe kan ik dit realiseren?
hmm... is dit voor het stage-administratie project voor 't school :? :)

je maakt eerst een recordset waarmee je een tabel kunt manipuleren:
dim rs as new ADODB.recordset
rs.open "tabelnaam", <watandereopties>

rs.addnew
rs!veldnaam = waarde
rs.update

TIP : kijk eens in de MSDN

voila, een hand toegestoken door een VHTI-student :Y)

I must not fear. Fear is the mind-killer. Fear is the little-death that brings total obliteration. I will face my fear. I will permit it to pass over me and through me. Where the fear has gone there will be nothing. Only I will remain.


Verwijderd

Je moet gaan werken met een tussen query. Uit je listbox krijg je alleen een waarde terug die correnspondeerd met de lijst die je in de listbox mikt. Je moet dus als je de 5e optie in een listbox aanklikt zorgen dat je een query maakt die de id ophaalt van de het record dat als 5e is langsgekomen. Ik hoop dat ik het duidelijk genoeg kan uitleggen:

Dim i As Integer
Dim ListId

Listid = ListBox1.Index

Set objRs = New ADODB.recordset
sSQL = "SELECT id FROM [TABEL]"
objRs.open sSQL, myCOn

'ERRUG BELANGERIJK
While NOT objRs.EOF AND FoundIt
If int(ListId) = int(i) then
FOundit = TRUE
MYID = objRs("id")
ELSE
objRs.movenext
i = i + 1
ENDIF
Wend

Set objRs = nothing

Ik hoop dat je er wat aan hebt.
[
Pagina: 1