Permalänk

Excel/VBA - Ladda upp en bild

Hej, jag har ett problem med ett formulär. Jag vill ladda upp en bild som får samma namn som ID på den raden som läggs till i databasen. Så jag vill bara välja bild, inte kopiera och döpa om den förräns raden i databasen har lagts till och fått sitt ID.

Jag är nybörjare och har kopierat delar av koden.

När man trycker på "Välj bild"

Private Sub CommandButton1_Click() 'skapa uppladdningsformulär för bilden' With Application.FileDialog(msoFileDialogFilePicker) .AllowMultiSelect = False .ButtonName = "Submit" .Title = "Select an image file" .Filters.Add "Image", "*.gif; *.jpg; *.jpeg", 1 If .Show = -1 Then 'filen har valts' Dim Path As String Path = .SelectedItems(1) Dim fsob As New FileSystemObject Dim fileName As String fileName = fsob.GetFileName(Path) Dim fso As Object Dim SourceFileName As String, DestinFileName As String 'skapa objektet' Set fso = CreateObject("Scripting.Filesystemobject") SourceFileName = .SelectedItems(1) DestinFileName = "\\vcn.ds.volvo.net\vce-bra\proj03\027980\04.Stödfunktioner\10.VPS-Support\50.Robin-Lab\Pictures\" & fileName 'kopiera filen' fso.CopyFile Source:=SourceFileName, Destination:=DestinFileName MsgBox (SourceFileName + " uppladdad till " + DestinFileName) Else 'användaren avbröt formuläret' End If End With End Sub

Och koden som lägger till en rad i databasen

Private Sub CommandButton2_Click() 'variabler' Dim db_section As String Dim db_relatedto As String Dim db_user As String Dim db_date As String 'variabler för insert i databasen' db_section = Me.ComboBox2.Value db_relatedto = Me.ComboBox1.Value db_user = Application.UserName db_date = Date 'upprätta databasanslutning' Dim cnn As New ADODB.Connection Dim rst As New ADODB.Recordset Dim qry As String 'kolla så fälten inte är tomma' If (Me.TextBox1.Value = "" Or Me.ComboBox1.Value = "" Or Me.ComboBox2.Value = "") Then MsgBox ("Du måste fylla i alla fält") Exit Sub End If 'öppna databasen' cnn.Open "Provider=Microsoft.Ace.OLEDB.12.0;Data Source=" & ThisWorkbook.Path & "\users.mdb" 'sql query' qry = "INSERT INTO BestPractice (bp_section, bp_relatedto, bp_user, bp_date) VALUES('" & db_section & "', '" & db_relatedto & "', '" & db_user & "', '" & db_date & "')" rst.Open qry, cnn, adOpenKeyset, adLockOptimistic MsgBox ("Exemplet inlagt i databasen!") 'återställ fälten till noll' Me.ComboBox1.Value = "" Me.ComboBox2.Value = "" Me.TextBox1.Value = "" End Sub

Båda ligger i UserForm1

Permalänk

Jag har ett annat önskemål, vore trevligt om någon ville hjälpa mig med mina inlägg. Känns som att VBA har dålig statistik för hjälp här på SC

Jag har 4 dropdown menyer. Jag har även 4 st kolumner i min access databas.
Jag vill hämta ut en unik för varje kolumn i mina rader och visa i denna dropdown.

K1 K2 K3 K4
A B C D
E F G H
I J K L
M N O P
Q R S T
A B C D
E F G H

Så Dropdown meny1 ska visa:
A
E
I
M
Q

osv.

Beroende på vad man valt i dessa 4 dropdowns så vill jag göra en SQL query som säger "SELECT * WHERE kolumn1=val från dropdown1, kolumn2 = val från dropdown2... osv och presentera dessa i en lista i mitt Form.

Permalänk
Medlem

Snabb fråga innan jag sätter mig och ska tyda.
Varför väljer du VB idag om du är nybörjare? VB är ett uråldrigt språk som inte längre utvecklas av Microsoft, det är ersatt av C#. Det sattes som legacy av Microsoft 2008.

Permalänk

På jobbet arbetar man mycket med Excel, men det kanske inte spelar någon roll. Data lagras i access, och tolkas uteslutande i pivottabeller i Excel. Jag tänker att det är dumt att gå från det systemet då..?

Dessutom har jag ingen adminstatus, så jag arbetar med de medel som finns tillgängliga. Programmering/utveckling är inte min huvudsakliga uppgift, jag vill bara kunna lösa enkla saker som få kan. Ett formulär som garanterar strukturerad data gör det enklare att plocka ut statistik.

Permalänk

Vore trevligt om någon ville hjälpa till med en lösning på min kod