[ASP/ACCESS] Radiobuttons/checkboxes ein-/auslesen

mslap

Mitglied
hi,
ich hab mir ne asp page erstellt, die meine acces datenbank wieder gibt und wo ich auch neue daten hinzufügen kann. in der datenbank gibt es allerdings auch checkboxes, die ich durch radiobuttons wieder geben will und einlesen will.

hab noch nix richtiges dafür gefunden, sollte aber ned zu schwer sein denke ich mal, vielleicht weiß es ja schnell einer. danke
 
Boolean-Werte?

Mit Checkboxen meinst Du wahrscheinlich diese tollen, grafisch dargestellen Ja/Nein Felder. Beim Auslesen kannst Du True / False oder (in Zahlen) 0 und (bei Access) -1 zurückbekommen (Darstellung ist in den Eigenschaften der Tabelle zu ändern)

Wenn Du nun Deinen Radiobuttons entsprechende Values gibst, müsstest Du nur noch entscheiden (je nach Eintrag in der Datenbank), ob Du Value 0 oder -1 (ggf mit * (-1) umwandeln in 1) anhaken / auf checked setzen sollst.
 
@ numiel das mit den values weis ich, es geht um den sql code und die ein bindung, ich poste jetzt mal meinen code, dann sollte es nimmer so schwer sein.

Code:
<%

'Dimension variables
Dim adoCon 			'Holds the Database Connection Object
Dim rsAddComments		'Holds the recordset for the new record to be added to the database
Dim strSQL			'Holds the SQL query for the database
dim fehlerbeschreibung
dim fehlerursache
dim kommentar
dim ID
dim namebehoben
dim namegemeldet
dim datumbehoben
dim betrkomp1
dim betrkomp2
dim betrkomp3
dim betrkomp4
dim sonstigekomponenten
dim neuekomponenten
dim client


'Create an ADO connection odject
Set adoCon = Server.CreateObject("ADODB.Connection")

'Set an active connection to the Connection object using a DSN-less connection
adoCon.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../CIM-Stoerungen.mdb")

'Set an active connection to the Connection object using DSN connection
'adoCon.Open "DSN=guestbook"

'Create an ADO recordset object
Set rsAddComments = Server.CreateObject("ADODB.Recordset")

'Initialise the strSQL variable with an SQL statement to query the database
strSQL = "SELECT Stoerungen.client, Stoerungen.Fehlerbeschreibung, Stoerungen.Kommentar, Stoerungen.Fehlerursache, Stoerungen.ID, Stoerungen.NameBehoben, Stoerungen.NameGemeldet, Stoerungen.Client, Stoerungen.sonstigeKomponente, Stoerungen.NeueKomponenten, Stoerungen.DatumGemeldet, Stoerungen.DatumBehoben, Stoerungen.BetrKomp1, Stoerungen.BetrKomp2, Stoerungen.BetrKomp3, Stoerungen.BetrKomp4, Stoerungen.Behoben, Stoerungen.inArbeit, Stoerungen.Gemeldet, Stoerungen.Kritisch, Stoerungen.OhneEffekt, Stoerungen.Störend FROM Stoerungen;"

'Set the cursor type we are using so we can navigate through the recordset
rsAddComments.CursorType = 2

'Set the lock type so that the record is locked by ADO when it is updated
rsAddComments.LockType = 3

'Open the tblComments table using the SQL query held in the strSQL varaiable
rsAddComments.Open strSQL, adoCon

'Tell the recordset we are adding a new record to it
rsAddComments.AddNew

fehlerursache = Request.Form("fehlerursache")
kommetar = Request.Form("kommentar")
namegemeldet = Request.Form("namegemeldet")
namebehoben = Request.Form("namebehoben")
fehlerbeschreibung = Request.Form("fehlerbeschreibung")
datumbehoben = Request.Form("datumbehoben")
betrkomp1 = Request.Form("betrkomp1")
betrkomp2 = Request.Form("betrkomp2")
betrkomp3 = Request.Form("betrkomp3")
betrkomp4 = Request.Form("betrkomp4")
neuekomponenten = Request.Form("neuekomponenten")
sonstigekomponenten = Request.Form("sonstigekomponente")
client = request.form("client")

if fehlerursache = "" then
fehlerursache = "-"
end if
if kommentar = "" then
kommentar = "-"
end if
if namebehoben = "" then
namebehoben ="-"
end if
if datumbehoben = "" then
datumbehoben ="-"
end if
if betrkomp2 = "" then
betrkomp2 = "-"
end if
if betrkomp3 = "" then
betrkomp3 = "-"
end if
if betrkomp4 = "" then
betrkomp4 = "-"
end if
if betrkomp1 = "" then
betrkomp1 = "-"
end if
if neuekomponenten = "" then 
neuekomponenten = "-"
end if
if sonstigekomponenten = "" then 
sonstigekomponenten = "-"
end if
if client = "" then
client = "-"
end if

if fehlerbeschreibung = "" then
error = "Alle Felder mit * müssen ausgefüllt sein"
response.write error
response.end
end if

if namegemeldet = "" then
error = "Alle Felder mit * müssen ausgefüllt sein"
response.write error
response.end
end if



'Add a new record to the recordset
rsAddComments.Fields("Fehlerursache") = fehlerursache
rsAddComments.Fields("Kommentar") = kommentar
rsAddComments.Fields("NameGemeldet") = namegemeldet
rsAddComments.Fields("namebehoben") = namebehoben
'rsAddComments.fields("behoben") = Request.Form("Status")
'rsAddComments.Fields("inarbeit") = Request.Form("inarbeit")
'rsAddComments.Fields("gemeldet") = Request.Form("gemeldet")
'rsAddComments.Fields("kritisch") = Request.Form("kritisch")
rsAddComments.Fields("Fehlerbeschreibung") = fehlerbeschreibung
'rsAddComments.Fields("stoerend") = Request.Form("stoerend")
'rsAddComments.Fields("ohneeffekt") = Request.Form("ohneeffekt")
rsAddComments.Fields("datumgemeldet") = FormatDateTime(Now(),vbLongDate)
rsAddComments.Fields("datumbehoben") = datumbehoben
rsAddComments.Fields("betrkomp1") = betrkomp1
rsAddComments.Fields("betrkomp2") = betrkomp2
rsAddComments.Fields("betrkomp3") = betrkomp3
rsAddComments.Fields("betrkomp4") = betrkomp4
rsAddComments.Fields("neuekomponenten") = Rneuekomponenten
rsAddComments.Fields("sonstigekomponente") = sonstigekomponenten
rsaddcomments.fields("client") = client



'Write the updated recordset to the database
rsAddComments.Update

'Reset server objects
rsAddComments.Close

Set rsAddComments = Nothing
Set adoCon = Nothing

'Redirect to the guestbook.asp page
Response.Redirect "alleanzeigen.asp"
%>

'rsAddComments.fields("behoben") = Request.Form("Status")
'rsAddComments.Fields("inarbeit") = Request.Form("inarbeit")
'rsAddComments.Fields("gemeldet") = Request.Form("gemeldet")
'rsAddComments.Fields("kritisch") = Request.Form("kritisch")
rsAddComments.Fields("Fehlerbeschreibung") = fehlerbeschreibung
'rsAddComments.Fields("stoerend") = Request.Form("stoerend")
'rsAddComments.Fields("ohneeffekt") = Request.Form("ohneeffekt")

sind die radiobuttons

und jetzt bitte ned, dass der code zu lang ist, ich hab das alles zum ersten mal gemacht, und bin zufrieden damit atm, und kein bock noch länger drum rumzu basteln.
 
Value-Übergabe

Darf ich das HTML-Formular dazu mal sehen?

Bzw. der Code der Radiobuttons würde mir reichen.
 
Tschuldigung, dass ichmich sofort gemeldet habe, war aber weg und mein comp zhause ging nicht.

Also hier der html code der form:

Code:
<form action="update.asp" method="post">
...
<br><u>Status:</u>
	<input type="radio" name="Status" value="behoben"> Behoben
	<input type="radio" name="Status" value="inarbeit"> in Arbeit
	<input type="radio" name="Status" value="gemeldet"> Gemeldet

<br>
<hr>
<br>
	<u>Wirkung:</u>

	<input type="radio" name="Wirkung" value="kritisch" > Kritisch
	<input type="radio" name="Wirkung" value="stoerend"> Störend
	<input type="radio" name="Wirkung" value="ohneeffekt"> Ohne Effekt

<br>
...
<BR>
	<input type="submit" value="abschicken">
</center>
 
Ich würd die komischen boolean Felder in Access austauschen, die sind mir eh nicht ganz geheuer. Ich arbeite da immer mit Integerfeldern die entweder 1 oder 0 sind.
 
Habs jetzt gelöst, zwar bissal umständlcih, aber wenns wen interessiert:


html Form (Radiobuttons) :

Code:
<form action="update.asp" method="post">
<br><u>Status:</u>
	<input type="radio" name="status" value="3"> Behoben
	<input type="radio" name="status" value="2"> in Arbeit
	<input type="radio" name="status" checked value="1"> Gemeldet

<br>
<hr>
<br>
	<u>Wirkung:</u>

	<input type="radio" name="Wirkung" value="3" > Kritisch
	<input type="radio" name="Wirkung" value="2"> Störend
	<input type="radio" name="Wirkung" checked value="1"> Ohne Effekt
	<input type="submit" value="abschicken">

Das ist die update.asp:

Code:
dim behoben
dim inarbeit
dim stoerend
dim gemeldet
dim kritisch
dim ohneeffekt
dim Status
dim Wirkung

...Connection zur DB öffnen, SQL string etc.

Status= request.form("status")
Wirkung = request.form("Wirkung")

if Status = 1 then
	gemeldet = -1
	behoben  = 0
	inarbeit = 0
elseif Status = 2 then
	gemeldet = 0
	behoben  = 0
	inarbeit = -1
elseif Status = 3 then
	gemeldet = 0
	behoben  = -1
	inarbeit = 0
end if

if Wirkung = 1 then
	ohneeffekt = -1
	stoerend = 0
	kritisch = 0
elseif Wirkung = 2 then
	ohneeffekt = 0
	stoerend = -1
	kritisch = 0
elseif Wirkung = 3 then
	ohneeffekt = 0
	stoerend = 0
	kritisch = -1
end if

rsAddComments.fields("behoben") = behoben
rsAddComments.Fields("inarbeit") = inarbeit
rsAddComments.Fields("gemeldet") = gemeldet
rsAddComments.fields("kritisch") = kritisch
rsAddComments.Fields("störend") = stoerend
rsAddComments.Fields("ohneeffekt") = ohneeffekt

close conn etc..

nicht wirklich schön aber effektiv

grüße slappy
 
Zurück