Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Access Skrivrutin

Postades av 2006-01-15 16:02:32 - Roland Danielsson, i forum access, Tråden har 15 Kommentarer och lästs av 836 personer

Med hjälp av nedanstående rutin “ReadSoekRegister” läser ett program data ur en Access2000 .mdb.
Läsningen fungerar helt ok.
Min uppgift är att i ett visst läge skriva in ett nytt dagnamn till fält Dagnamn för rekord med Nyckeln = xy.
Har försökt på olika sätt komplettera .Open satsen för att få med parameter adLockOptimistic
så att det skall gå att skriva i rekordet.
Mha:
rsSoekar!DagNamn = blabla
rsSoekar.Update

Tyvärr har inget av mina försök varit lyckosamt.

Public Sub ReadSoekRegister()
Dim Conn As New ADODB.Connection
Dim SQL As String ' Dimensionering av söksträng
Dim SoekConn As New ADODB.Connection
Dim SoekSQL As String ' Dimensionering av söksträng
Const SoekRegister As String = "C:\SoekSoek\SoekRegister.mdb;uid=Admin;PWD=xxxx"

Dim rsSoekar As New ADODB.Recordset
On Error GoTo ErrHandler_ReadSoekRegister
SoekConn.Open "driver={Microsoft Access Driver (*.mdb)};dbq= " & SoekRegister
On Error Resume Next
SoekConn.Execute SQL
'**********************************************
SoekSQL = "Select * FROM Dagar WHERE Nyckel = xy"
Set rsSoekar = SoekConn.Execute(SoekSQL)
dMark = rsSoekar.Fields("Mark")
sDagnamn = rsSoekar.Fields("DagNamn")
ReadSoekRegister_Out:
SoekConn.Close
Exit Sub
ErrHandler_ReadSoekRegister:
' SoekConn.Close
MsgBox Err.Source & "-->" & Err.Description, , "Error"
Title = "Felmeddelande !!ReadSoekRegister"
Response = MsgBox(Err.Description, , Title)
GoTo ReadSoekRegister_Out
End Sub


Vore tacksam om någon kunde visa hur skrivrutinen skall se ut.

Mvh / Roland


Svara

Sv: Access Skrivrutin

Postades av 2006-01-18 18:58:27 - Roland Danielsson

Undrar om mitt problem är för lätt ellerför svårt eftersom ingen svarar.
Tycker att eftersom bifogad läsrutin fungerar så borde det gå att få till en skrivrutin.


Svara

Sv:Access Skrivrutin

Postades av 2006-01-22 22:33:44 - Maria Jönsson

Man brukar sätta # runt datum, prova med detta istället

SoekSQL = "Select * FROM Dagar WHERE Nyckel =#" & xy & "#"

Värt ett försök!

Hoppas det funkar

/Maria


Svara

Sv:Access Skrivrutin

Postades av 2006-01-23 01:43:18 - Andreas Hillqvist

Personligen tycker jag koden är för kladdig. Har variabler som inte används, dålig indentering.
Det verkar mer vara en test funktion. Om du först städar upp den kan jag titta på den.


Svara

Sv: Access Skrivrutin

Postades av 2006-01-25 19:16:11 - Roland Danielsson

Hej Maria och tack för ditt svar!

Problemet ligger inte i Select satsen eftersom den hittar sökt rekord.
Använder för test t.ex en direkt nyckel (t.ex 1).
Problemet ligger någonstans i att det öppnade rekordet inte är tillgängligt för editering av innehållet i ett fält.
När jag försöker:

Dim test, sDagNamn as String

sDagNamn = rsSoekar.Fields("DagNamn")
så får jag in innehållet från rsSoekar.Fields("DagNamn") till fält sDagNamn
men om jag förtsätter:
test = "HEJ"
rsSoekar!DagNamn = test
så förändras inte innehållet i rsSoekar!DagNamn till "HEJ" utan förblir det som innehållit varit tidigare.

mvh/Roland


Svara

Sv:Access Skrivrutin

Postades av 2006-01-26 18:27:21 - Maria Jönsson

Hej igen

har du provat skriva så här:

test = "HEJ"
rsSoekar("DagNamn").Value = test

/Maria


Svara

Sv: Access Skrivrutin

Postades av 2006-01-27 08:40:13 - Roland Danielsson

Hej och tack igen!

Testade ditt förslag, men när jag stegar igenom instruktionerna så har jag samma egendomligheter som förut rsSoekar "sväljer" inte nya värden.

Vet snart inte vad jag skall hitta på.

Verkar som om problemet kanske beror på att rsSoekar inte ligger i samma .mdb som currentDb.

mvh/Roland


Svara

Sv:Access Skrivrutin

Postades av 2006-01-27 11:25:42 - Maria Jönsson

Vi gör väl ett nytt försök....

Vad händer om du öppnar recordsettet på följande sätt

rsSoekar .Open SoekSQL, SoekConn, , adLockOptimistic

Skam den som ger sig......
/Maria


Svara

Sv: Access Skrivrutin

Postades av 2006-01-27 14:12:41 - Roland Danielsson

Tack igen det värmer att du försöker!

Resultatet blev det samma som tidigare.
Läsningen gick bra. Innehållet i rekordet gick att plocka fram
sDagNamn = rsSoekar.Fields("DagNamn") ' helt ok
men
test = "HEJ"
rsSoekar!DagNamn = test
eller
rsSoekar("DagNamn").Value = test

förändrar inte innehållet i rsSoekar DagNamn

Ps: Har försökt varianten med adLockOptimistic tidigare. Trodde från början att det var där skon klämde och att rekordet inte annars är öppet för editering och uppdatering, men det saknas tydligen något fortfarande.

/Roland


Svara

Sv: Access Skrivrutin

Postades av 2006-01-30 09:04:31 - Roland Danielsson

Hej igen!
Så här ser mitt senaste ej framgångsrika förslag ut.

SoekSQL = "Select * FROM Dagar WHERE Nyckel = 1"

rsSoekar.Open SoekSQL, "driver={Microsoft Access Driver (*.mdb)};dbq= " _
& SoekRegister, , adLockOptimistic

test = rsSoekar.Fields("DagNamn")
' Så här långt fungerar allt ok och innehållet i cell test får värdet i SoekRegister fält DagNamn
'--------------------------------
test2 = "HEJ"
rsSoekar!DagNamn = test2
' innehållet i rsSoekar!DagNamn har inte förändrats till HEJ
'-----------------------------------------------------------------
rsSoekar("DagNamn").Value = test2
' innehållet i rsSoekar!DagNamn har inte förändrats till HEJ
'----------------------------------------------------------------
rsSoekar.Update
' rsSoekar.Update gör ingen förändring

Hoppas någon ännu har nåt förslag att prova

mvh/Roland


Svara

Sv:Access Skrivrutin

Postades av 2006-02-01 18:15:06 - Maria Jönsson

Jag undrar om du gör någon annan uppdatering eller skrivning till databasen som du vet fungerar. Om du inte gör det kanske det är så att mappen databasen ligger i är skrivskyddad?? Det har jag råkat ut för förut. Kolla det!

Ett annat försök är ju att använda UPDATE

Dim strSql
Dim test
test = "hej"
strSql = "UPDATE Dagar Set Dagnamn = '" & test & "' WHERE Nyckel = 1"
SoekConn.Execute strSql

/Maria


Svara

Sv:Access Skrivrutin

Postades av 2006-02-02 08:18:53 - Jan Bulér

Hej.

Har du försökt att ändra cursor-typ vid öppnandet av recordsetet.

adOpenDynamic

Nu skriver du:
<code>
rsSoekar.Open SoekSQL, "driver={Microsoft Access Driver (*.mdb)};dbq= " _
& SoekRegister, , adLockOptimistic
</code>

<code>
rsSoekar.Open SoekSQL, "driver={Microsoft Access Driver (*.mdb)};dbq= " _
& SoekRegister, adOpenDynamic, adLockOptimistic
</code>

eller eventuellt

<code>
rsSoekar.Open SoekSQL, "driver={Microsoft Access Driver (*.mdb)};dbq= " _
& SoekRegister, adOpenKeyset, adLockOptimistic
</code>

Som default öppnas rs med cursortyp adOpenForwardOnly.



Svara

Sv: Access Skrivrutin

Postades av 2006-02-02 09:38:27 - Roland Danielsson

Hej igen Maria och tack fördina goda råd!
Skrivskyddet kollade jag för ett bra tag sedan och konstaterade att feletinte låg där, men så kunde ju ha varit fallet.

strSql = "UPDATE Dagar Set Dagnamn = '" & test & "' WHERE Nyckel = 1"
SoekConn.Execute strSql
Ovanstående UPDATE fungerar perfekt så du har LÖST mitt problem STORT TACK!!!!

Hade tänkt kringgå problemet genom att göra en ny tabell i current DB istället för att skriva in Dagnamnet i det register där det egentligen hör hemma. Nu behöver jag inte kringgå problemet.

Kram/ Roland


Svara

Sv: Access Skrivrutin

Postades av 2006-02-02 09:42:56 - Roland Danielsson

Hej JAN och tack för ditt svar!

Tyvärr hjälpte inte någon av alternativen, men det var definitivt värt och prova.

Skulle förstås vara intressant att fortsätta söka orsak till problemet, men eftersom Maria:s UPDATE variant fungerar så fortsätter jag mot nya problem.
Tack för att du försökte!
mvh/Roland


Svara

Sv:Access Skrivrutin

Postades av 2006-02-02 11:03:16 - Andreas Hillqvist

Ett stort misstag du gör i din kod är att använda On Error Resume next.
Som jag ser det har Jan rätt. Du saknar cursor typ. Default är forward only. Vilket för Access drivrutin inte är uppdaterbar.
Dessutom tycker jag du borde använda JET providern vilket är en OLEDB drivrutinen istället för Access ODBC.
Hårdkodade sökvägar hör inte hemma i en applikation.
Osv...

Något sånt här skulle det se ut om jag skulle skriva om det:

Option Explicit

Const RegSectionSettings As String = "Settings"
Const RegKeyDBFileName   As String = "Database file name"

Public Property Let DBFileName(Value As String)
    SaveSetting App.Title, RegSectionSettings, RegKeyDBFileName, Value
End Property
Public Property Get DBFileName() As String
Dim Default As String
    Default = App.Path & "\SoekRegister.mdb"
    DBFileName = GetSetting(App.Title, RegSectionSettings, RegKeyDBFileName, Default)
End Property

Public Function WriteSoekRegister(Nyckel As Long, NewName As String) As String
Dim rs As ADODB.Recordset
Dim Conn As ADODB.Connection
Dim SQL As String    ' Dimensionering av söksträng
On Error GoTo ErrHandler_ReadSoekRegister

    SQL = "SELECT *" + vbCrLf + _
          "FROM Dagar" + vbCrLf + _
          "WHERE Nyckel = " & Nyckel
          
    Set Conn = New ADODB.Connection
    Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" + vbCrLf + _
              "Persist Security Info=False;" + vbCrLf + _
              "Data Source=" & DBFileName()
                  
    Set rs = New ADODB.Recordset
    rs.Open SQL, Conn, adOpenKeyset, adLockOptimistic
    
    If rs.EOF Then
        MsgBox "Det finns ingen post med nyckel: " & Nyckel, vbExclamation
    Else
        WriteSoekRegister = rs("DagNamn")
        rs("DagNamn") = NewName
        rs.Update
    End If
    
    Conn.Close
    
ReadSoekRegister_Out:
    Exit Function

ErrHandler_ReadSoekRegister:
    MsgBox Err.Source & "-->" & Err.Description, , "Felmeddelande !!ReadSoekRegister"
    GoTo ReadSoekRegister_Out

End Function

Private Sub Command1_Click()
    WriteSoekRegister 1, Text1.Text
End Sub


Svara

Sv: Access Skrivrutin

Postades av 2006-02-02 13:13:46 - Roland Danielsson

Hej Andreas!
Tack för ett bra exempel som jag kommer att använda mig utav!
mvh/ Roland


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 768
27 960
271 761
1 578
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies