Avatar billede Slettet bruger
20. januar 2006 - 13:37 Der er 10 kommentarer og
1 løsning

Opsamler informationer i database

Jeg skal bruge en asp kode med tilhørende Access database... Det skal fungere således brugeren kan udfylde nedestående felter i en form og værdierne bliver derefter gemt i en database ved submit... databasen bliver self. større jo flere bruger der tilmelder sig...

Formfelterne er:

fornavn
efternavn
tlfnr
postnr
by
adresse
email
fødselsdag (dag,måned,år - 3 selectbokse)

Er der nogen der vil hjælpe med det? Gerne en kode der er til at overskue så jeg selv kan rette i den hvis nødvendigt.
Avatar billede Slettet bruger
20. januar 2006 - 13:51 #1
jamen det vil jeg da gerne hjælpe dig med.
Hvad med denne kode:
<!-- #include file="EDIT.inc" -->
<%
Dim rs
set rs = Server.CreateObject("ADODB.RecordSet")
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("DataBase.mdb") & ";UID=admin;PWD=;"
rs.open "Users", strDSN, adOpenDynamic, adLockOptimistic, adCmdTable
rs.addnew
rs("fornavn") = Request.Form("fornavn")
rs("efternavn") = Request.Form("efternavn")
rs("tlfnr") = Request.Form("tlfnr")
rs("postnr") = Request.Form("postnr")
rs("by") = Request.Form("by")
rs("adresse") = Request.Form("adresse")
rs("email") = Request.Form("email")
rs("fodselsdag") = Request.Form("dag") & "-" & Request.Form("maaned") & "-" & Request.Form("aar")
rs.update
rs.close
set rs=nothing
%>

Her skal du oprette en database i samme mappe som scriptet. Databasen skal hedde "DataBase" og tabellen du opretter skal hedde "Users". I tabellen skal du så oprette nogle felter som hedder: "fornavn", "efternavn", "tlfnr", "postnr", "by", "adresse", "email" og "fodselsdag".
Så skulle det gerne virke...
Du bør måske også lige have en Response.Redirect på efter scriptet er kørt...
Og du skal også huske at inkluderingsfilen som står i toppen skal også være der...

\Dan
Avatar billede Slettet bruger
20. januar 2006 - 14:01 #2
Jeg vil desuden anbefale dig at lade være med at bruge æ, ø og å i dine form-navne! Derfor har jeg omdøbt formen "måned" til "maaned" og "år" til "aar".

Derudover bør du nok også lave et til felt i tabellen i databasen som hedder "id", som du skal sætte til autonummereing som datatype, og denne skal også være primærnøgle (unik)...

\Dan
Avatar billede Slettet bruger
20. januar 2006 - 14:03 #3
Tak for den hurtigere tilbagemelding... :)

1) <!-- #include file="EDIT.inc" --> forstår jeg ik helt... Er det en fil ved navn edit.inc der skal oprettes?
Laver jeg en fil ved navn tilmeld.asp og sætter din kode ind der? Så skal jeg I min form ved submit knappen /v funktion referere til tilmeld.asp?

2) Databasen skal gerne være låst således man kun kan få oplysningerne at se hvis man har id/kode...

3) Response.Redirect skal kommer lige efter %> ikke? Dvs. Response.Redirect = sdfdsf.asp ?
Avatar billede Slettet bruger
20. januar 2006 - 14:12 #4
Filen du skal inkludere kan du downloade her: http://fdfvodskov.dk/FDF/login/EDIT.inc
I denne fil står der nemlig nogle konstanter som skal bruges, og derfor skal den inkluderes...
Hvis databasen skal være låst for alle andre, kan du bare sætte brugernavn og kodeord på den, og så skrive det i scriptet også... Altså "UID=DitBrugernavn;PWD=DitKodeord;"

Response.Redirect skal stå INDEN asp-scriptet afsluttes... Altså inden "%>".

\Dan
Avatar billede Slettet bruger
20. januar 2006 - 14:15 #5
Hvad denne inkluderingsfil angår så virker ovenstående link ikke...
Men så prøv i notesblokken at lave en inc-fil hvor nedenstående (under stregen) står
-------------------------------------------------------------------
<%
'--------------------------------------------------------------------
' Microsoft ADO
'
' (c) 1996 Microsoft Corporation.  All Rights Reserved.
'
'
'
' ADO constants include file for VBScript
'
'--------------------------------------------------------------------

'---- CursorTypeEnum Values ----
Const adOpenForwardOnly = 0
Const adOpenKeyset = 1
Const adOpenDynamic = 2
Const adOpenStatic = 3

'---- CursorOptionEnum Values ----
Const adHoldRecords = &H00000100
Const adMovePrevious = &H00000200
Const adAddNew = &H01000400
Const adDelete = &H01000800
Const adUpdate = &H01008000
Const adBookmark = &H00002000
Const adApproxPosition = &H00004000
Const adUpdateBatch = &H00010000
Const adResync = &H00020000
Const adNotify = &H00040000

'---- LockTypeEnum Values ----
Const adLockReadOnly = 1
Const adLockPessimistic = 2
Const adLockOptimistic = 3
Const adLockBatchOptimistic = 4

'---- ExecuteOptionEnum Values ----
Const adRunAsync = &H00000010

'---- ObjectStateEnum Values ----
Const adStateClosed = &H00000000
Const adStateOpen = &H00000001
Const adStateConnecting = &H00000002
Const adStateExecuting = &H00000004

'---- CursorLocationEnum Values ----
Const adUseServer = 2
Const adUseClient = 3

'---- DataTypeEnum Values ----
Const adEmpty = 0
Const adTinyInt = 16
Const adSmallInt = 2
Const adInteger = 3
Const adBigInt = 20
Const adUnsignedTinyInt = 17
Const adUnsignedSmallInt = 18
Const adUnsignedInt = 19
Const adUnsignedBigInt = 21
Const adSingle = 4
Const adDouble = 5
Const adCurrency = 6
Const adDecimal = 14
Const adNumeric = 131
Const adBoolean = 11
Const adError = 10
Const adUserDefined = 132
Const adVariant = 12
Const adIDispatch = 9
Const adIUnknown = 13
Const adGUID = 72
Const adDate = 7
Const adDBDate = 133
Const adDBTime = 134
Const adDBTimeStamp = 135
Const adBSTR = 8
Const adChar = 129
Const adVarChar = 200
Const adLongVarChar = 201
Const adWChar = 130
Const adVarWChar = 202
Const adLongVarWChar = 203
Const adBinary = 128
Const adVarBinary = 204
Const adLongVarBinary = 205

'---- FieldAttributeEnum Values ----
Const adFldMayDefer = &H00000002
Const adFldUpdatable = &H00000004
Const adFldUnknownUpdatable = &H00000008
Const adFldFixed = &H00000010
Const adFldIsNullable = &H00000020
Const adFldMayBeNull = &H00000040
Const adFldLong = &H00000080
Const adFldRowID = &H00000100
Const adFldRowVersion = &H00000200
Const adFldCacheDeferred = &H00001000

'---- EditModeEnum Values ----
Const adEditNone = &H0000
Const adEditInProgress = &H0001
Const adEditAdd = &H0002
Const adEditDelete = &H0004

'---- RecordStatusEnum Values ----
Const adRecOK = &H0000000
Const adRecNew = &H0000001
Const adRecModified = &H0000002
Const adRecDeleted = &H0000004
Const adRecUnmodified = &H0000008
Const adRecInvalid = &H0000010
Const adRecMultipleChanges = &H0000040
Const adRecPendingChanges = &H0000080
Const adRecCanceled = &H0000100
Const adRecCantRelease = &H0000400
Const adRecConcurrencyViolation = &H0000800
Const adRecIntegrityViolation = &H0001000
Const adRecMaxChangesExceeded = &H0002000
Const adRecObjectOpen = &H0004000
Const adRecOutOfMemory = &H0008000
Const adRecPermissionDenied = &H0010000
Const adRecSchemaViolation = &H0020000
Const adRecDBDeleted = &H0040000

'---- GetRowsOptionEnum Values ----
Const adGetRowsRest = -1

'---- PositionEnum Values ----
Const adPosUnknown = -1
Const adPosBOF = -2
Const adPosEOF = -3

'---- enum Values ----
Const adBookmarkCurrent = 0
Const adBookmarkFirst = 1
Const adBookmarkLast = 2

'---- MarshalOptionsEnum Values ----
Const adMarshalAll = 0
Const adMarshalModifiedOnly = 1

'---- AffectEnum Values ----
Const adAffectCurrent = 1
Const adAffectGroup = 2
Const adAffectAll = 3

'---- FilterGroupEnum Values ----
Const adFilterNone = 0
Const adFilterPendingRecords = 1
Const adFilterAffectedRecords = 2
Const adFilterFetchedRecords = 3
Const adFilterPredicate = 4

'---- SearchDirection Values ----
Const adSearchForward = 1
Const adSearchBackward = -1

'---- ConnectPromptEnum Values ----
Const adPromptAlways = 1
Const adPromptComplete = 2
Const adPromptCompleteRequired = 3
Const adPromptNever = 4

'---- ConnectModeEnum Values ----
Const adModeUnknown = 0
Const adModeRead = 1
Const adModeWrite = 2
Const adModeReadWrite = 3
Const adModeShareDenyRead = 4
Const adModeShareDenyWrite = 8
Const adModeShareExclusive = &Hc
Const adModeShareDenyNone = &H10

'---- IsolationLevelEnum Values ----
Const adXactUnspecified = &Hffffffff
Const adXactChaos = &H00000010
Const adXactReadUncommitted = &H00000100
Const adXactBrowse = &H00000100
Const adXactCursorStability = &H00001000
Const adXactReadCommitted = &H00001000
Const adXactRepeatableRead = &H00010000
Const adXactSerializable = &H00100000
Const adXactIsolated = &H00100000

'---- XactAttributeEnum Values ----
Const adXactCommitRetaining = &H00020000
Const adXactAbortRetaining = &H00040000

'---- PropertyAttributesEnum Values ----
Const adPropNotSupported = &H0000
Const adPropRequired = &H0001
Const adPropOptional = &H0002
Const adPropRead = &H0200
Const adPropWrite = &H0400

'---- ErrorValueEnum Values ----
Const adErrInvalidArgument = &Hbb9
Const adErrNoCurrentRecord = &Hbcd
Const adErrIllegalOperation = &Hc93
Const adErrInTransaction = &Hcae
Const adErrFeatureNotAvailable = &Hcb3
Const adErrItemNotFound = &Hcc1
Const adErrObjectInCollection = &Hd27
Const adErrObjectNotSet = &Hd5c
Const adErrDataConversion = &Hd5d
Const adErrObjectClosed = &He78
Const adErrObjectOpen = &He79
Const adErrProviderNotFound = &He7a
Const adErrBoundToCommand = &He7b
Const adErrInvalidParamInfo = &He7c
Const adErrInvalidConnection = &He7d
Const adErrStillExecuting = &He7f
Const adErrStillConnecting = &He81

'---- ParameterAttributesEnum Values ----
Const adParamSigned = &H0010
Const adParamNullable = &H0040
Const adParamLong = &H0080

'---- ParameterDirectionEnum Values ----
Const adParamUnknown = &H0000
Const adParamInput = &H0001
Const adParamOutput = &H0002
Const adParamInputOutput = &H0003
Const adParamReturnValue = &H0004

'---- CommandTypeEnum Values ----
Const adCmdUnknown = &H0008
Const adCmdText = &H0001
Const adCmdTable = &H0002
Const adCmdStoredProc = &H0004

'---- SchemaEnum Values ----
Const adSchemaProviderSpecific = -1
Const adSchemaAsserts = 0
Const adSchemaCatalogs = 1
Const adSchemaCharacterSets = 2
Const adSchemaCollations = 3
Const adSchemaColumns = 4
Const adSchemaCheckConstraints = 5
Const adSchemaConstraintColumnUsage = 6
Const adSchemaConstraintTableUsage = 7
Const adSchemaKeyColumnUsage = 8
Const adSchemaReferentialContraints = 9
Const adSchemaTableConstraints = 10
Const adSchemaColumnsDomainUsage = 11
Const adSchemaIndexes = 12
Const adSchemaColumnPrivileges = 13
Const adSchemaTablePrivileges = 14
Const adSchemaUsagePrivileges = 15
Const adSchemaProcedures = 16
Const adSchemaSchemata = 17
Const adSchemaSQLLanguages = 18
Const adSchemaStatistics = 19
Const adSchemaTables = 20
Const adSchemaTranslations = 21
Const adSchemaProviderTypes = 22
Const adSchemaViews = 23
Const adSchemaViewColumnUsage = 24
Const adSchemaViewTableUsage = 25
Const adSchemaProcedureParameters = 26
Const adSchemaForeignKeys = 27
Const adSchemaPrimaryKeys = 28
Const adSchemaProcedureColumns = 29
%>
Avatar billede Slettet bruger
20. januar 2006 - 14:15 #6
Denne inc-fil skal så være i samme mappe som scriptet...
\Dan
Avatar billede Slettet bruger
20. januar 2006 - 15:22 #7
Mange tak... du får pointsne... :-)

Du skulle evt. ik vide noget om hvordan jeg Validerer felterne? (Så de bliver indtastet med rigtige values)?
Avatar billede Slettet bruger
20. januar 2006 - 15:27 #8
En anden ting - nu spørger jeg bare af ren nysgerrighed men der der er en masse koder i den inc fil... hvad er det lige den gør? Ved du det? :)
Avatar billede Slettet bruger
20. januar 2006 - 15:35 #9
Hej

Fik du det til at virke?
Den inc-fil indeholder nogle konstanter, som i dette her tilfælde skal fortælle scriptet noget om hvordan den skal åbne databasen, og hvilke rettigheder der skal gives...

Hvad validering angår vil jeg foreslå at du kan sætte en flok if-sætninger ind i scriptet som skal gemme...
fx. Sådan her:
<%
fornavn = Request.Form("fornavn")
if fornavn <> "" then
rs("fornavn") = fornavn
else
rs("foravn") = "INTET FORNAVN"
end if
%>

- Der findes mange måder du kan validere på, og mange ting som du kan validere efter...

\Dan

P.S. Her er der et svar... Hvis du synes jeg fortjener pointene...
Avatar billede Slettet bruger
20. januar 2006 - 15:40 #10
Jeg takker. :-)
Avatar billede Slettet bruger
20. januar 2006 - 17:39 #11
Jamen det var så lidt!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester