supernewb: ASP MSAccess - input type file - wert in DB nicht ändern, wenn nichts verändert

Beitrag lesen

Hallo liebe SELFHTMLer 😀

Ich hätte da mal wieder ein Problem ... Mittlerweile lässt sichs nur noch schwer zählen, wie oft ihr mir schon geholfen habt. Dafür vorab nochmal ein dickes dickes Dankeschön.

Nun zum Sachverhalt

Ich betreibe eine inventurdatenbank in access, die ich nun nach und nach in ein frontend bauen möchte. Da wir im Intranet noch mit ASP arbeiten (und ich eigentlich gar nicht entwickeln kann), nutze ich auch ASP für meine Datenbank.

Ich habe also eine Datenbank mit etlichen Einträgen für Technik und deren Eigenschaften. (PC, Marke, CPU, Arbeitsspeicher, Rechnung, etc. pp )

hierfür habe ich eine Seite erstellt, die mir alle eingetragenen Rechner und deren wichtigsten Daten zeigt, sowie eine Detailseite die nur einen Datenbankeintrag mit allen Werten anzeigt. Auf der Detailseite habe ich ein INPUT TYPE FILE feld eingebunden, um den Pfad einer Rechnung anzuhängen. Diese Rechnungen liegen alle bereits im firmeneigenen Netzwerk, sodass ein tatsächlicher Upload Redundant und Sinnfrei wäre. Daher übergebe ich wie folgt lediglich den Pfad der gewählten Datei :

...…
<form action="PCspeichern.asp" method="post">
...…

<tr><td><b>Rechnungsnummer</b></td><td><input type="text" name="Rechnungsnummer" value="<%=(rs_Inventur.Fields.Item("Rechnungsnummer").Value) %>"</td> 
	<% IF rs_Inventur.Fields.Item("Rechnungspfad").Value <> "" THEN %><a href="<%=(rs_Inventur.Fields.Item("Rechnungspfad").Value) %>" target="_blank"><b><u>Rechnungsablage</u></b> </a> <% ELSE %> <b>Rechnungsablage</b> <% END IF %> 
	<form method="post"><input class="button" id="Rechnungspfad" name="Rechnungspfad" type="file" size="1" ></form><label for="Rechnungspfad"><% IF rs_Inventur.Fields.Item("Rechnungspfad").Value <> "" THEN %>Rechnung &auml;ndern<% ELSE %> Rechnung w&auml;hlen <% END IF %> </label></tr></form>

Abgeschickt wird über "PCSpeichern.asp"

` MM_editCmd.CommandText = "UPDATE PC_Technik SET Standort = ?, Strasse = ?, Art = ?, Bezeichnung = ?, Hersteller = ?, Lieferant = ?, Seriennummer = ?, Tag_Nummer = ?, Neupreis = ?, Anschaffungsdatum = ?, Anschaffungsart = ?, BA_Nummer = ?, Rechnungsnummer = ?, Rechnungspfad = ?, Bemerkungen = ?, Bildschirm = ?, Prozessor = ?, Taktung = ?, Arbeitsspeicher = ?, Festplattentyp = ?, Festplattengroesse = ?, Grafikkarte = ?, Grafikspeicher = ?, Soundkarte = ?, Schnittstellen = ?, Laufwerke = ?, Betriebssystem = ?, Office_Version = ?, Browser = ?, Zimmer = ?, Einsatz = ?, Mitarbeiter = ?, Netzwerkkarte = ?, MAC = ?, Anlagennummer = ?, interneNummer = ?, Virenscanner = ?, letzteAenderung = ? WHERE ID = " & Session("strID") & ""`

So, der Käse funktioniert sogar. Es werden alle gewünschten Daten in die DB geschrieben. Sogar der INPUT TYPE FILE wird korrekt als voller Pfad in die DB geschrieben.

Jetzt kommt aber das aber ... Da ALLE Daten beim Druck auf den "submit" abgeschickt werden, schickt auch der INPUT TYPE FILE einen Wert raus, selbst wenn ich nur, beispielsweise, Änderungen am Standort oder sonstigen Feldern vornehme. Und dieser Wert ist null. Das heißt, dass mein zuvor gespeicherter Link beim Ändern irgendeiner anderen Zeile mit nichts überschrieben wird. Das ist natürlich nicht so gewünscht 😂

Kann ich das irgendwie vorher abfragen? Alá

"WENN DB EINTRAG NICHT NULL, DANN FORM = (rs_Inventur.Fields.Item("Rechnungspfad").Value)"

Oder muss ich nur für den Pfad eine komplett neue Abfrage bauen?

Ich hoffe, ihr könnt mir - erneut - weiter helfen

Grüße

akzeptierte Antworten