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


SQL sträng och recordset i Access DB

Postades av 2004-03-15 14:08:19 - Urban Olars, i forum access, Tråden har 1 Kommentarer och lästs av 933 personer

Jag sparar bildfiler i BLOB fält i en Access databas. Har använt en stand-alone VB app för att lägga till bilder i databasen med hjälp av StreamObject, vilket funkar bra.
Försöker nu få till en funktion för att kunna göra det direkt inifrån Access databasen, men får inte till det.

Jag skapar ett Recordset:
Set rs = New ADODB.Recordset
rs.CursorLocation = adUseClient

Sedan försöker jag få till en SQL sträng för att hitta just den post som är aktuell i formuläret som är öppet. Numret på den aktuella posten hittar jag med: Screen.ActiveForm.CurrentRecord

Hur hittar jag namnet på den tabell som är öppen?
Hur skriver jag SQL strängen för att enbart hitta aktuell post?

Har försökt ungefär så här:
rs.Open "Select * FROM" & "Tabellen" & "WHERE" & "??????" & "=" & Screen.ActiveForm.CurrentRecord, CurrentProject.Connection, adOpenKeyset, adLockOptimistic

När jag fått till min Recordset, så hade jag tänkt lägga in bilden i BLOB fältet med:
rs.Fields("BLOBImage").Value = mstream.Read


Är jag inne på rätt spår, eller finns det något smartare sätt att göra det på?


Svara

Sv: SQL sträng och recordset i Access DB

Postades av 2004-03-16 00:06:32 - Andreas Hillqvist

Du är ute och cycklar. Access använder DAO mot access databaser och ADO mot SQL server.

Glöm inte lägga till referens till DAO.
<code>
Private Const ErrCanceled As Long = vbObjectError + 1

Private Const GWL_HINSTANCE As Long = (-6)

Private Type OPENFILENAME
lStructSize As Long
hwndOwner As Long
hInstance As Long
lpstrFilter As String
lpstrCustomFilter As String
nMaxCustFilter As Long
nFilterIndex As Long
lpstrFile As String
nMaxFile As Long
lpstrFileTitle As String
nMaxFileTitle As Long
lpstrInitialDir As String
lpstrTitle As String
flags As Long
nFileOffset As Integer
nFileExtension As Integer
lpstrDefExt As String
lCustData As Long
lpfnHook As Long
lpTemplateName As String
End Type

Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function apiGetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long

Public Function GetFileName(FileName As String) As String
Dim Pos As Long
Pos = InStrRev(FileName, "\")
If Pos Then
GetFileName = Mid(FileName, Pos + 1)
Else
GetFileName = FileName
End If
End Function

Public Function GetOpenFileName(Optional Title As String = "Open file", Optional Filter As String = "All Files (*.*)|*.*|", Optional Owner As Form) As String
Dim pOpenfilename As OPENFILENAME

With pOpenfilename
.lStructSize = Len(pOpenfilename)

'Set the parent window
If Owner Is Nothing Then
.hwndOwner = hWndAccessApp
Else
.hwndOwner = Owner.hwnd
End If
' .hInstance = GetWindowLong(.hwndOwner, GWL_HINSTANCE)

'Select a filter
.lpstrFilter = Replace(Filter, "|", vbNullChar) + vbNullChar + vbNullChar

'create a buffer and set the maximum length for the file
.lpstrFile = Space$(254)
.nMaxFile = 255

'Create a buffer and set the maximum length for the file title
.lpstrFileTitle = Space$(254)
.nMaxFileTitle = 255

'Set the initial directory
.lpstrInitialDir = CurDir$

'Set the title
.lpstrTitle = Title

'No flags
'.flags = OFN_EXPLORER
End With

'Show the 'Open File'-dialog
If apiGetOpenFileName(pOpenfilename) Then
GetOpenFileName = Trim$(pOpenfilename.lpstrFile)
Else
Err.Raise ErrCanceled, "GetOpenFileName()", "User canceld dialog"
End If
End Function

Private Sub cmdImport_Click()
Dim rs As DAO.Recordset
Dim Field As DAO.Field

Dim Buffer() As Byte
'Const BufferSize As Long = 1024

Dim FileNo As Long
Dim FileName As String
On Error GoTo cmdSparaFil_Click_Err

Set rs = Me.Recordset
If rs.EOF Or rs.BOF Then
Else
FileName = GetOpenFileName(, , Me)
Set Field = rs("FileData")

FileNo = FreeFile()
Open FileName For Binary Access Read Shared As FileNo

ReDim Buffer(1 To LOF(FileNo))

Get FileNo, , Buffer

rs.Edit
Field.AppendChunk Buffer
rs("FileName") = GetFileName(FileName)
rs.Update

Erase Buffer


Close FileNo
End If

cmdSparaFil_Click_Exit:
Exit Sub

cmdSparaFil_Click_Err:
Select Case Err.Number
Case ErrCanceled
Resume cmdSparaFil_Click_Exit
Case Else
MsgBox Err.Description, vbCritical, Err.Source
Resume cmdSparaFil_Click_Exit
End Select
End Sub
</code>


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 769
27 960
271 761
955
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